L'extraction de données web est l'extraction automatisée de données à partir de sites web : un programme demande des pages, analyse le HTML ou le JSON retourné, et enregistre des champs spécifiques, tels que les prix ou les annonces, dans un format structuré. Cela diffère du crawling web, qui suit des liens pour découvrir et indexer des pages ; le scraping extrait des données spécifiques des pages récupérées.
Un scraper de base envoie une requête HTTP à une URL cible, reçoit le HTML brut (ou JSON, pour les sites basés sur une API), et extrait les points de données spécifiques nécessaires : prix des produits, classements de recherche, informations de contact, et similaires. À grande échelle, le scraping rencontre des limites de taux, qui limitent le nombre de requêtes qu'une seule adresse IP peut effectuer dans une fenêtre de temps donnée.
Types d'outils de scraping web
- Bibliothèques de code : Scripts qui envoient des requêtes HTTP et analysent le HTML, par exemple Python avec un analyseur HTML.
- Automatisation de navigateur : Outils tels que Selenium ou Playwright qui chargent la page complète, y compris le contenu construit en JavaScript, puis extraient des données du DOM rendu.
- APIs officielles : Lorsqu'un site en propose une, il retourne des données structurées directement, sans analyse de HTML.
Mesures anti-scraping courantes
En plus des limites de taux, les sites utilisent d'autres moyens pour repérer et ralentir les scrapers :
- CAPTCHAs qui demandent au visiteur de prouver qu'il est humain.
- Fichiers robots.txt qui indiquent quels chemins les crawlers automatisés peuvent accéder.
- Honeypots : Liens cachés que les visiteurs humains ne voient jamais ou ne cliquent pas, utilisés pour identifier et identifier les bots.
- Empreinte de dispositif, qui peut réidentifier un navigateur ou un appareil à partir de ses caractéristiques, même après que les cookies aient été effacés ou lorsqu'un VPN est utilisé.