Scrapy chez Cocon

Chez Cocon, on a développé notre propre crawler optimisé pour visualiser votre site, mais on ne rechine pas à utiliser d’autres outils qui facilitent la tâche.

scrapylogoUn de ces outils, c’est Scrapy.
Scrapy c’est un framework de crawl et de scrape qui permet très rapidement d’extraire ce qu’on veut, ou presque, du web ou d’un site donné.
Il est développé en Python, et utilise des règles XPath pour sélectionner les items à extraire.
(Si vous utilisez RDDZ Scraper, vous connaissez déjà XPath)

Extraire les liens d’un site, ses balises title ou canonical; les urls d’une serp… des microdatas ? Facile.

C’est souple et puissant

De nombreuses extensions « middleware » sont disponibles pour gérer les différents aspects du crawl.
crawl-largeur-premier

  • Respecter le robots.txt ? Check
  • Exclure des pages selon des règles ? Check
  • Suivre les redirections/canonicals ? Check
  • Crawler des sitemaps xml ? Check
  • Crawler d’abord par profondeur ou d’abord par largeur ? Check
  • Crawler via proxies ? Check
  • Gérer les cookies ? Check
  • Jouer avec les User-Agent ? Check
  • Intégrer avec BeautifulSoup pour extraire la data ? Check

Scrapy en prototypage

Pour prototyper et tester chez Cocon.Se, quand on a une idée ou un algo spécifique à valider, un coup de Scrapy et c’est plié.

Par exemple, en ce moment on joue avec Schema.Org, les Microdatas, RDFa et Json-Ld, ça vous parle ?
Et bien avec Scrapy, sans avoir à écrire des tonnes de lignes de code, on sait extraire les données structurées des pages web.
On peut le faire pour les sites qu’on scrape, mais aussi sur des serps, pour avoir une « odeur » des microdatas présentes sur une serp…

Générer des datasets

Le second usage de Scrapy chez Cocon, c’est pour générer des datasets perso, qu’on va utiliser comme base de test ou comme source de référence pour du machine learning.
Je ne vais pas m’étendre là dessus, parce que c’est encore dans les cartons, mais en quelques lignes on extrait ce qu »‘on veut, on sauve les datas en csv, json, dans une base nosql : c’est magique !

Scaler dans le Cloud

scalabiliteSi vous avez des jobs en volume, vous pouvez directement lancer vos crawlers dans le cloud via ScrapingHub.
Ca tourne tout seul, vous récupérez logs et data scrapés.
(C’est gratuit pour un crawl de 24h maxi)

Bref, Scrapy, c’est LE couteau suisse du scrap !

Ressources : Scrapy

D’autres articles techniques ? Avec plaisir :