Web scraping et data scraping : les vraies définitions

Lucas Roquilly

Publié le 2 novembre 2020

Cet article est le premier de notre série Web Scraping : le guide complet avec tutoriels.

Pratiques de plus en plus utilisées par les entreprises et les indépendants, le web scraping et le data scraping permettent de collecter des données pour une infinité de finalités possibles telles que la constitution ou l’enrichissement de bases de données de prospection ou de produits par exemple.

Il existe pourtant une confusion commune entre les termes web scraping et data scraping. Voyons ensemble la distinction avant d’en apprendre plus sur le web scraping.

Avant tout, clarifions immédiatement une erreur très commune chez les francophones (et même à travers le monde) : on parle de scraping (avec un “p”) et non de scrapping(avec deux “p”). Le terme correct, “Scraping”, vient du verbe anglais to scrape qui signifie l’acte de gratter, racler voire érafler une surface. Le mauvais terme, à ne pas utiliser, “scrapping” vient du verbe to scrap qui signifie plutôt “se débarrasser de quelque chose”. Ne faites plus l’erreur !

Définition du Data Scraping

Le data scraping (ou capture, collecte ou extraction de données en français) est une technique par laquelle un programme informatique extrait des informations depuis une source lisible par un humain et produite par un autre programme informatique.

Le data scraping permet d’extraire des données et de les structurer depuis une source prévue à l’origine pour être lue par un humain et où l’information n’est donc pas structurée, pas documentée, et pas optimisée pour être extraite facilement. En général, le data scraping est utilisé pour interfacer un programme avec un programme plus ancien qui ne propose pas d’API ou pour extraire des données depuis une source tierce, parfois sans son accord.

Illustration représentant le scraping de pages web vers de la donnée.

Le scraping permet de transformer des pages web HTML en données structurées

Définition du Parsing

La communication de données entre programmes informatiques se fait via des structures de données telles que des APIs, des requêtes en bases de données, des middlewares de messageries. Les données y sont structurées pour l’interprétation par les programmes informatiques donc souvent pas ou peu lisibles par un humain.

Lorsque deux programmes communiquent de cette façon, par exemple via une API, le programme effectuant la requête va récupérer les données d’une autre application et parcourir la réponse pour y extraire les données. C’est ce qu’on appelle le parsing.

Web scraping : définition

Il existe plusieurs types de data scraping parmi lesquels le screen scraping (extraction des données depuis un écran), le report mining (extraction des données depuis un rapport en fichier texte) et le plus répandu : le web scraping.

On l’aura deviné, le web scraping est la technique permettant d’extraire des informations depuis des pages web, via le protocole HTTP ou depuis un navigateur internet. Bien qu’il puisse être fait à la main, le web scraping tire évidemment tout son intérêt dans le fait qu’il est automatisable.

Tout programme de web scraping suit toujours trois étapes importantes:

  • Le Fetching (ou l’étape de requête) : il s’agit tout simplement du téléchargement de la page en vue de son analyse. La façon dont notre programme va parcourir le site visé (crawling), stocker les URL à traiter et les appeler pour le fetching est donc primordiale.
  • Le Parsing (ou l’étape de traitement) : une fois la page téléchargée, notre programme a accès à son contenu (code HTML) et peut le parser, c’est-à-dire le traiter pour n’extraire que les données voulues (par exemple : un nom, un prix, une URL…). On utilisera pour cela des sélecteurs CSS ou XPath permettant de sélectionner un élément bien précis du code.
  • Le stockage : une fois les données récupérées, notre programme doit les structurer pour les exporter et les stocker au format de notre choix comme un tableau clé-valeur (par exemple un fichier JSON) ou une base de données.

Le monde du développement web évolue très vite et les sites web font aujourd’hui de plus en plus appel à des APIs pour dynamiser l’expérience utilisateur et ajouter des informations sur les pages web de façon asynchrone via des appels AJAX. Les techniques modernes de web scraping tendent à extraire des données depuis ces appels et leurs réponses : le but est de récupérer les appels API faites par une page et de les reproduire en dehors de cette page. C’est pourquoi, en pratique, les termes data scraping et web scraping peuvent aujourd’hui facilement s’interchanger.

La pratique s’étant fortement démocratisée, de nombreuses solutions “clé en main” existent aujourd’hui pour faire du web scraping. Souvent très coûteuses et peu flexibles, ces solutions sont loin des possibilités offertes par les technologies de web scraping telles que les frameworks et les librairies disponibles dans de nombreux langages. Découvrez la suite de notre série sur le web scraping avec notre article dédié : Quels langages et technologies choisir pour le web scraping ?

Derniers articles

Avoir des tests automatisés permet à une application d'être plus durable et résistante aux évolutions. Entre les tests unitaires, tests fonctionnels ou tests end-to-end, comment prioriser son temps de dev?

L'agent de développeur vous accompagne et vous informe tout au long de votre carrière pour vous aider à atteindre vos objectifs. Découvrez pourquoi faire appel à un agent

En tant que développeur backend, vous serez attendu sur plusieurs problématiques qui ne sont pas abordées lors des tutos ou des formations. Découvrez les points à travailler pour devenir un bon développeur backend.

Après un an de loyaux services, j'ai décidé de migrer de Wordpress vers une stack NextJS. Découvrez les enjeux d'une telle migration.

Pour devenir développeur employable après une reconversion, il va falloir continuer à travailler sur votre montée en compétences et assurer une veille techno active afin d'arriver au niveau nécessaire pour décrocher votre premier CDI. Découvrez comment prioriser les différentes notions tech pour monter en compétences efficacement

En tant que développeur spécialiste du data scraping, je suis régulièrement sollicité par des personnes ou des entreprises souhaitant automatiser certains processus. Le tutoriel d’aujourd’hui reprend l’un de ces projets, réalisé pour une startup qui cherchait à effectuer une veille automatisée via un bot Instagram.