Scrapy est un framework open-source permettant la création de robots d'indexation. Développé en Python, il dispose d'une forte communauté, offrant de nombreux modules supplémentaires. La première version stable est publiée en [3]. Le framework dispose d'une communauté active, et un support commercial est effectué par plusieurs entreprises[4].
Caractéristiques
L'équipe responsable du développement du framework lui confère plusieurs caractéristiques[5] :
- Simple : aucune notion avancée en Python n'est nécessaire pour utiliser Scrapy
- Productif : l'empreinte de code à générer est très courte, la plupart des opérations sont gérées par Scrapy
- Rapide : le framework est rapide, avec une gestion d'actions en parallèle notamment
- Extensible : chaque robot peut être personnalisés via des extensions, modifiant son comportement
- Portable : les robots Scrapy sont compatibles Linux, Windows, Mac et BSD
- Open Source
- Robuste, grâce à une batterie de tests effectuées aussi bien par les développeurs que la communauté
Exemple de robot
Le site web du projet propose un tutoriel détaillé sur l'utilisation de Scrapy[6]. Ce cours propose notamment plusieurs exemples, comme celui ci-contre, extrayant certains liens présents sur plusieurs pages web.
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from tutorial.items import DmozItem
class DmozSpider(BaseSpider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select('//ul/li')
items = []
for site in sites:
item = DmozItem()
item['title'] = site.select('a/text()').extract()
item['link'] = site.select('a/@href').extract()
item['desc'] = site.select('text()').extract()
items.append(item)
return items
Notes et références
- ↑ « Release 2.13.4 », (consulté le )
- ↑ https://github.com/scrapy/scrapy/blob/master/LICENSE
- ↑ Scrapy 0.7 release candidate is available!, consulté le 17 août 2012
- ↑ Scrapy Commercial support, consulté le 29 août 2012
- ↑ Scrapy overview, consulté le 17 août 2012
- ↑ Scrapy at a glance

