Avez-vous déjà entendu parler de web scraping ? Le web scraping est une technique qui consiste à collecter des données et informations présentes sur des sites web, afin de les regrouper et les agréger de façon structurée, dans un fichier Excel, CSV ou directement dans une base de donnée, dans le but d’exploiter ces informations. Les usages sont nombreux : pouvoir tirer des statistiques sur une typologie de données, récupérer des informations commerciales stratégiques (prix pratiqués par des concurrents, listing de produits d’un catalogue), voire, dans l’approche dite de Growth Hacking, de récolter des données sur des prospects dans le but de les démarcher.
Si cette méthode est de plus en plus utilisée aujourd’hui, au delà de l’aspect juridique que le sujet soulève, elle pose également de réels problèmes pour les éditeurs de sites web, sites marchands (e-commerce), médias et autres acteurs qui dépensent beaucoup d’argent en production de contenu afin d’alimenter leur propre site web, et qui souhaiteraient ne pas permettre à tout un chacun de pouvoir aspirer ces informations pour les utiliser ou les détourner.
Voici ci-dessous un article qui explique de façon synthétique les origines du scrap de données, et les différentes techniques pour scraper gratuitement ou avec des outils payants.
Est-ce possible de protéger son site web du scraping de robots ?
Pour l’essentiel, lutter contre le web scraping signifie que vous devez faire en sorte qu’il soit difficile pour les scripts et les machines d’obtenir les données souhaitées de votre site web, tout en ne rendant pas la tâche difficile aux utilisateurs réels et aux moteurs de recherche.
Malheureusement, c’est difficile et vous devrez faire des compromis entre la prévention du scraping et la dégradation de l’accessibilité pour les utilisateurs réels et les moteurs de recherche.
Afin d’empêcher le scraping (également connu sous le nom de web scraping, Screenscraping, web data mining, web harvesting, ou extraction de données web), il est utile de savoir comment ces scrapers fonctionnent, et ce qui les empêche de bien fonctionner, et c’est de cela qu’il s’agit dans cette réponse.
En général, ces programmes de web scraping sont écrits pour extraire des informations spécifiques de votre site, comme des articles, des résultats de recherche, des détails sur les produits. En général, les gens scrappent les sites web pour obtenir des données spécifiques, afin de les réutiliser sur leur propre site (et de faire de l’argent avec votre contenu !), ou pour construire des interfaces alternatives pour votre site (comme des applications mobiles), ou même simplement pour des recherches ou des analyses privées.
Il existe plusieurs types de scrapers, et chacun fonctionne différemment :
Les spiders ou robots
Les spiders, tels que le bot de Google ou les copieurs de sites web comme HTtrack, qui visitent votre site web et suivent alternativement les liens vers d’autres pages afin d’obtenir des données. Ils sont parfois utilisés pour un scraping ciblé afin d’obtenir des données spécifiques, souvent en combinaison avec un analyseur HTML pour extraire les données souhaitées de chaque page.
Les scripts shell
Scripts shell : Parfois, des outils Unix courants sont utilisés pour le scraping : Wget ou Curl pour télécharger des pages, et Grep (Regex) pour extraire les données souhaitées, généralement à l’aide d’un script shell. Ce sont les plus simples, mais aussi les plus fragiles (n’essayez jamais d’analyser du HTML avec des regex !). Ce sont donc les plus faciles à casser et à compromettre.
Les scrapers et parsers HTML
Les scrapers et parsers HTML, tels que ceux basés sur Jsoup, Scrapy, et bien d’autres. Semblables à ceux basés sur des scripts shells avec regex, ils fonctionnent en extrayant des données de vos pages en fonction de modèles de votre HTML, en ignorant généralement tout le reste.
Ainsi, par exemple : si votre site web dispose d’une fonction de recherche, ce type de scraper peut soumettre une requête HTTP pour une recherche, puis obtenir tous les liens de résultats et leurs titres à partir de la page de résultats HTML, parfois des centaines de fois pour des centaines de recherches différentes, afin de n’obtenir spécifiquement que les liens de résultats et leurs titres. Ce sont les plus courants.
Les screenscrapers (scanners d’écran)
Les screenscrapers, basés par exemple sur Selenium ou PhantomJS, qui ouvrent réellement votre site web dans un vrai navigateur, exécutent JavaScript, AJAX, etc. et obtiennent ensuite le texte souhaité de la page web, généralement en récupérant le HTML du navigateur après le chargement de votre page et l’exécution de JavaScript, puis en utilisant un analyseur HTML pour extraire les données ou le texte désiré. Ce sont les méthodes les plus courantes, et donc de nombreuses méthodes pour casser les analyseurs / scrapers HTML fonctionnent également ici.
- Prendre une capture d’écran des pages rendues, puis utiliser l’OCR pour extraire le texte désiré de la capture d’écran. Ces méthodes sont rares, et seuls les scrapers dédiés qui veulent vraiment vos données les mettront en place.
- Les scrapers d’écran basés sur un navigateur sont plus difficiles à gérer, car ils exécutent des scripts, rendent le HTML et peuvent se comporter comme un véritable humain naviguant sur votre site.
Les services de web scraping
Les services de web scraping d’écran tels que ScrapingHub ou Kimono. En fait, il existe des personnes dont le travail consiste à trouver comment scraper votre site et en extraire le contenu pour que d’autres puissent l’utiliser. Ces personnes utilisent parfois de vastes réseaux de proxies et des adresses IP en constante évolution pour contourner les limites et les blocages, ce qui les rend particulièrement problématiques.
Il n’est pas surprenant que les services professionnels de scraping de contenu soient les plus difficiles à dissuader, mais si vous rendez la tâche difficile et longue pour trouver comment retirer votre site, ces services (et les personnes qui les paient pour le faire) ne se donneront peut-être pas la peine de scraper votre site web.
L’intégration de votre site web via iframe ou dans des applications mobiles
Il arrive souvent que des personnes tierces viennent intégrer votre site web dans les pages d’un autre site avec des iframes, ou intégrer votre site dans des applications mobiles.
Bien qu’il ne s’agisse pas d’un web scraping technique, c’est également un problème, car les applications mobiles (Android et iOS) peuvent intégrer votre site web, et même injecter des CSS et JavaScript personnalisés, modifiant ainsi complètement l’apparence de votre site, et n’affichant que les informations souhaitées, comme le contenu de l’article lui-même ou la liste des résultats de recherche, et masquant des éléments comme les en-têtes, les pieds de page ou les annonces.
Les copier/coller humains
Copier – et – coller : Les gens copieront et colleront votre contenu afin de l’utiliser ailleurs. Malheureusement, il n’y a pas grand-chose que vous puissiez faire à ce sujet.
Il y a beaucoup de chevauchements entre ces différents types de scrapers, et de nombreux scrapers se comporteront de la même manière, même s’ils utilisent des technologies et des méthodes différentes pour obtenir votre contenu.
Pour retrouver l’article original en anglais (Creative Commons) : https://github.com/JonasCz/How-To-Prevent-Scraping/blob/master/README.md