Scrapy

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Scrapy
Image illustrative de l'article Scrapy
Logo

Dernière version 0.24 ()
Version avancée 0.15
Écrit en Python
Environnement Multi-plateforme
Langues Anglais
Type Robot d'indexation
Licence Licence propriétaire Scrapy
Site web www.scrapy.org

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 a été publiée en septembre 2009[1]. Depuis, l'équipe de développement publie régulièrement de nouvelles versions dans le but d'enrichir le framework en fonctionnalité. L'objectif principal est d'obtenir une API stable pour la version 1.0[2]. Le framework dispose d'une communauté active, et un support commercial est effectué par plusieurs entreprises[3].

Le framework est pour le moment compatible uniquement avec Python 2.6 et 2.7, sur la majorité des plate-formes (Linux, Windows, Mac et BSD).

Caractéristiques[modifier | modifier le code]

L'équipe responsable du développement du framework lui confère plusieurs caractéristiques[4] :

  • 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[modifier | modifier le code]

Le site web du projet propose un tutoriel détaillé sur l'utilisation de Scrapy[5]. 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[modifier | modifier le code]

  1. Scrapy 0.7 release candidate is available!, consulté le 17 août 2012
  2. Versioning and API Stability, consulté le 17 août 2012
  3. Scrapy Commercial support, consulté le 29 août 2012
  4. Scrapy overview, consulté le 17 août 2012
  5. Scrapy at a glance