Des ressources pour débuter du data scraping

Bien le bonjour,
étant dev front end principalement (je fais aussi de l’admin serveur , du php/symfony, du ruby / python depuis peu) je recherche des ressources pour débuter en data scraping.

J’ai en projet de faire une extension firefox pour libérer ses évènements facebook vers le logiciel libre et décentralisé Mobilizon, qui implémente activitypub. Event Liberator qui n’est qu’en draft actuellement.
Je cherche aussi à faire du traitement de logs de conversations (données plutôt bien structurés de façon brute) pour produire des stats.
En php je peine a faire un parseur efficace de logs pour le moment. Mais il faut dire que je n’y ai pas consacré suffisamment de temps.

J’ai vu qu’il existe cheerio et ses data frame en JS pour se faciliter la vie par exemple.

Comme tout le monde ici à l’air assez bien au fait de comment faire du scraping je vous propose de lister des outils et tutos pour adopter des bonnes pratiques quand on ne sait pas trop par où commencer.

J’ai scrappé beaucoup de choses et à chaque fois c’est du fait main car toujours différent…

Mes outils habituels:

  • scripts bash avec curl wget jq csvkit sed awk
  • du python quand il y a besoin d’un peu plus de logique et beautifulsoup pour le xml/html
1 J'aime

Hello, pour ma part, je scrape beaucoup avec node.js :

  • le plus simple est effectivement cheerio et request ou request-promise-native qui te permette de plugger cheerio à ta response.

  • pour des use cases plus complexes, tu peux essayer puppeteer, le navigateur chrome en headless et pilotable entièrement par node… Plus lourd à manoeuvrer mais assez impressionnant

Mais je crois que la plupart des gens utilisent Python pour le scraping

1 J'aime

Bonjour,

ça ne répondra probablement pas à votre cas d’usage, mais au cas où ça intéresse d’autres personnes, R (le langage de stats et d’analyse et visualisation de données) permet également de faire du scraping. Utile si on l’utilise par ailleurs pour analyser les données.
Il y a beaucoup de ressources à ce sujet en ligne, mais en français on notera notamment : http://larmarange.github.io/analyse-R/scraping.html.

Un peu comme les autres : bash, python et node essentiellement, mais j’en profite pour pointer un petit outil du médialab bien pratique pour certains usages : https://medialab.github.io/artoo/
Sa particularité est de permettre de faire du scraping directement depuis la console du navigateur en injectant jquery et tout un ensemble d’helpers dans la page. Cela sert donc essentiellement pour des données se trouvant dans une seule et même page, mais c’est notamment bien pratique lorsque la page en question se protège du scraping par différents biais, requière une forme d’authentification ou nécessite des clics pour charger plus de contenus, genre pour collecter des commentaires sur un groupe facebook par exemple.

1 J'aime

+1 pour le package rvest sous R. Cd. ici un exemple permettant d’aspirer les évaluations d’impact recensées sur le site du 3IE.

Je ne code pratiquement pas mais j’arrive à faire des merveilles avec l’extension WebScraper de Chrome : https://chrome.google.com/webstore/detail/web-scraper/jnhgnonknehpejjnehehllkliplmbmhn?hl=en

1 J'aime

Une ressource utile pour démarrer serait aussi un point sur le statut légal du scrapping de site web. Aux US, des décisions de justice récentes (cf. ici ou ) indiquent clairement que ça ne peut pas être considéré comme du piratage, mais ça reste très flou en matière de copyrights. Mais qu’en est-il en France ? J’ai trouvé cet article qui me semble très discutable (ie. centré sur des cas d’usage commerciaux), et celui-ci, plus applicable à ce qu’on peut vouloir faire en matière d’analyse/reporting public, mais pas très conclusif. Avez-vous en tête d’autres références ?