Web scraping

Schéma de principe d'une opération de scraping

Le web scraping, parfois appelé harvesting ou en français moissonnage[1], est une technique d'extraction des données de sites web par l'utilisation d'un script ou d'un programme dans le but de les transformer et les réutiliser dans un autre contexte comme l'enrichissement de bases de données, le référencement[2] ou l'exploration de données.

Légalité[modifier | modifier le code]

Aux États-Unis[modifier | modifier le code]

Aux États-Unis, la société hiQ Labs utilise le web scraping sur les données de LinkedIn à des fins de recrutement. À la suite d'un procès, la Cour d'appel des États-Unis pour le neuvième circuit donne raison à hiQ en  : la cour considère notamment que les utilisateurs conservent la propriété de leurs profils, et que les données étant librement diffusées sur Internet, elles peuvent être collectées. L'affaire est ensuite portée devant la Cour suprême[3].

En , la cour du district nord de Californie juge en faveur du réseau social LinkedIn sur décision du juge Edward Chen, invoquant le fait que hiQ pratique la rétro-ingénierie afin de contourner sciemment et de manière répétée les protections contre les robots en simulant des utilisateurs humains[4].

En Europe[modifier | modifier le code]

Dans un jugement de 2013, la Cour de justice de l'Union européenne condamne le métamoteur de recherche Innoweb, qui réutilise les données de l'entreprise de vente d'automobiles Wegener sans modification de celles-ci[5].

En France[modifier | modifier le code]

Le , la Commission nationale de l'informatique et des libertés (CNIL) publie de nouvelles directives sur le web scraping[6]. Les lignes directrices de la CNIL précisent que les données accessibles au public sont toujours des données personnelles et qu'elles ne peuvent pas être réutilisées à l'insu de la personne à laquelle ces données appartiennent[7].

En décembre 2021, une start-up de la Station F est condamnée pour piratage informatique. À l'aide d'une technique de web scraping, elle récolte des données de l'annuaire d'une école de commerce parisienne, afin de solliciter les anciens élèves de l'établissement en vue d'alimenter un financement participatif[8]. La condamnation porte sur la méthode d'accès à la donnée, c'est-à-dire une usurpation d'identité permettant un « accès frauduleux à un système de traitement automatisé de données », et non le web scraping lui-même.

Technologies[modifier | modifier le code]

De nombreuses technologies permettent d'extraire du contenu de sites web via le web scraping. Certaines nécessitent des connaissances en développement de logiciels (les frameworks et bibliothèques, ou les API par exemple) tandis que d'autres sont accessibles au grand public et peuvent être utilisés à travers une interface graphique (c'est le cas des extensions de navigateur ou des logiciels en tant que service).

Frameworks et bibliothèques[modifier | modifier le code]

Il existe de multiples frameworks et bibliothèques logicielles, disponibles pour plusieurs langages de programmation, pour écrire des applications de web scraping.

Certains reposent sur l'émulation d'une instance d'un navigateur web afin de réaliser des actions sur des pages web (telles que cliquer sur un lien ou remplir un champ de formulaire) utiles pour réaliser des tests automatisés, ou dans le cadre du web scraping, pour extraire des données. On dit alors que le web scraping est réalisé côté client, ce qui a pour avantage de pouvoir extraire du contenu dynamique généré par le code JavaScript présent sur la page. La bibliothèque Node.js Puppeteer, par exemple, émule une instance du navigateur Chromium et permet de réaliser des actions automatisées en mode headless ou non.

D'autres frameworks et bibliothèques reposent sur l'analyse du code HTML de la page obtenu en réalisant une requête HTTP. Ce code HTML n'étant dans ce cas pas interprété par un moteur JavaScript, il n'est pas interprété. Cela est un inconvénient dans le cadre du web scraping à l'ère du web moderne où le contenu des pages web est souvent généré dynamiquement par du code JavaScript. N'ayant pas besoin d'interpréter le JavaScript, ni de télécharger toutes les ressources de la page (les feuilles de style, images etc.) cette méthode est en revanche généralement bien plus économe en ressources (mémoire vive, bande passante, etc.) et donc plus rapide. C'est le fonctionnement, par exemple, de la bibliothèque Goutte (PHP).

Les bibliothèques et frameworks les plus populaires pour le web scraping sont :

Nom Langage Site web Open source Toujours maintenu
Beautiful Soup Python Lien Oui Oui
Puppeteer JavaScript (Node.js) Lien Oui Oui
Goutte PHP (Symfony) Lien Oui Oui
Scrapy Python Lien Oui Oui
Selenium Multiples Lien Oui Oui
woob Python Lien Oui Oui
PhantomJS JavaScript Lien Oui Non

Interfaces de programmation (API)[modifier | modifier le code]

L'utilisation d'interfaces de programmation est une bonne alternative aux bibliothèques et frameworks pour les développeurs souhaitant accélérer le développement de leurs applications de web scraping. Ces interface de programmation (API) fonctionnent généralement de la façon suivante : l'utilisateur réalise une requête HTTP vers un point de terminaison présent sur un serveur distant contrôlé par le prestataire du service. Cette requête porte dans sa charge utile l'adresse (URL) de la page web de laquelle il faut extraire les données et parfois d'autres paramètres tels qu'un sélecteur CSS ou XPath permettant d'identifier un ou plusieurs éléments HTML précis desquels extraire le contenu. Le serveur répond alors par le contenu demandé.

De nombreuses sociétés proposent des API de web scraping, généralement payantes, dont voici une liste non exhaustive des options les plus populaires :

  • ScraperAPI
  • ScrapingBee
  • Scrapfly
  • ScrapingFish
  • Apify
  • Bright Data
  • Scraping bot
  • Diffbot
  • Wrapapi

Autres logiciels[modifier | modifier le code]

Il existe de très nombreux logiciels sur le marché permettant d'automatiser des opérations de web scraping, certains nécessitant quelques connaissances en développement informatique et d'autres étant accessibles sans prérequis de compétences. On peut distinguer parmi ces logiciels plusieurs catégories :

  • Les logiciels SaaS, Software as a Service (Logiciel en tant que Service), installés sur un serveur distant, accessibles depuis un navigateur internet et entièrement hébergés par un prestataire. Ils ne nécessitent aucune installation, sont généralement payants et reposent pour la plupart sur un modèle économique basé sur l'usage ou sur un abonnement mensuel ou annuel.
  • Les logiciels exécutables, dont les parts de marché s'effondrent ces dernières années en faveur des applications web[9] en raison de leurs inconvénients par rapport à ces dernières (prérequis de configuration système, obligation de télécharger le logiciel et toutes les mises à jour postérieures etc.)
  • Les extensions de navigateur, téléchargeables depuis les annuaires d'extensions et ont la particularité d'être exécutées à l'intérieur de l'instance du navigateur. Elles proposent généralement moins de fonctionnalités que les autres catégories de logiciel mais sont également majoritairement moins coûteuses et plus faciles d'utilisation.

Certains des logiciels les plus utilisés pour le web scraping sont :

  • Lobstr.io
  • StablerTech
  • Scrapebox
  • Zennoposter
  • Captaindata
  • Phantombuster
  • Webscraper.io

Notes et références[modifier | modifier le code]

  1. « Moissonnage du Web », Grand Dictionnaire terminologique, Office québécois de la langue française (consulté le )
  2. Régis Micheli et Jean-Noël Anderruthy, Le référencement publicitaire avec Google AdWords. Astuces, conseils : toutes les techniques d'experts certifiés, Books on Demand (BoD), (lire en ligne)
  3. (en) Wendy Davis, « Supreme Court Asks hiQ To Respond In Battle Over Data Scraping », (consulté le ).
  4. (en-US) David Cohens, « Court Sides With LinkedIn in Data Scraping Lawsuit vs. hiQ Labs », (consulté le )
  5. Arnaud Touati et Christina Salassidis, « Le web scraping, une technique d’extraction légale ? », sur actualité du droit, (consulté le ).
  6. « La réutilisation des données publiquement accessibles en ligne à des fins de démarchage commercial », sur Commission nationale de l'informatique et des libertés, .
  7. (en) « Legal Web Scraping for Legal Purposes », sur finddatalab.com, .
  8. Gabriel Thierry, « Une start-up de la Station F condamnée après un scraping sauvage », sur ZDNet, .
  9. (en) « Gartner Says Four Trends Are Shaping the Future of Public Cloud », sur Gartner (consulté le )

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]