Glossaire

Le vocabulaire du scraping et de l'anti-bot

Des définitions simples et honnêtes, sans jargon inutile. De quoi comprendre pourquoi un site bloque et ce qu'il faut pour passer.

Les bases du scraping

Web scraping #

Extraction automatisée de données depuis des pages web : un programme récupère le HTML (ou une réponse JSON) d'une URL, puis en isole les informations utiles (prix, titres, avis...). C'est légal pour des données publiques, mais soumis aux conditions du site, au RGPD et au droit d'auteur.

Démarrage en 5 minutes →

Crawler vs scraper #

Un crawler parcourt les liens d'un site pour en découvrir les pages (comme Googlebot) ; un scraper extrait le contenu d'une page précise. On crawle pour trouver les URLs, on scrape pour lire ce qu'elles contiennent. Les deux vont souvent de pair.

API vs scraping #

Quand un site expose une API officielle, c'est la voie la plus fiable : données structurées, stables, autorisées. Le scraping prend le relais quand il n'existe pas d'API, quand elle est bridée, ou quand la donnée n'est visible que dans la page. Vérifier l'existence d'une API avant de scraper fait gagner du temps.

robots.txt #

Fichier à la racine d'un site (/robots.txt) qui indique aux robots les zones à ne pas explorer. Il n'a pas de valeur juridique contraignante en soi, mais le respecter est une bonne pratique et un signal de scraping responsable. Il ne remplace pas la lecture des conditions d'utilisation.

Rate limiting #

Limitation du nombre de requêtes qu'une même source (IP, compte, clé) peut envoyer dans un laps de temps. Au-delà du seuil, le site renvoie souvent un code 429 (Too Many Requests). On le contourne en espaçant les appels et en répartissant le trafic sur plusieurs IP.

Paramètres : cadence et pays →

User-Agent #

En-tête HTTP par lequel un client se présente (navigateur, version, OS). Un user-agent absent, générique ou incohérent avec le reste de la requête est un signal de bot classique. Il doit rester cohérent avec les autres en-têtes et l'empreinte réelle du client.

Outil : analyser un User-Agent →

Protections anti-bot

Cloudflare #

CDN et bouclier très répandu. Au-delà du cache, son Bot Management et sa page « Just a moment... » (challenge JS, parfois Turnstile) filtrent les clients automatisés. Un simple client HTTP est bloqué : il faut un vrai navigateur, une empreinte TLS crédible et une IP cohérente.

Outil : détecter la protection d'une URL →

DataDome #

Protection anti-bot spécialisée, courante sur les marketplaces (Vinted, Leboncoin...). Elle combine empreinte de navigateur, analyse comportementale et un CAPTCHA « appuyer et maintenir ». Elle laisse rarement passer un client HTTP nu ; il faut une session navigateur chauffée et une IP propre.

Guide : scraper Vinted →

PerimeterX (HUMAN) #

Solution anti-bot (rebaptisée HUMAN) qui pose un cookie de défi (_px) et évalue le comportement du client. Comme DataDome, elle vise à distinguer un humain d'un script et impose un vrai navigateur avec des signaux cohérents.

Akamai Bot Manager #

Protection intégrée au CDN Akamai, fréquente sur les grands sites e-commerce et bancaires. Elle s'appuie sur des cookies (_abck, ak_bmsc) et une collecte de signaux côté client. Elle demande une empreinte de navigateur solide pour ne pas être classée comme bot.

Imperva (Incapsula) #

Bouclier applicatif (ex-Incapsula) qui filtre le trafic via des cookies (visid_incap, incap_ses) et des pages de défi. On le reconnaît à ces marqueurs ; le franchir suppose là encore un navigateur réel et une IP réputée.

CAPTCHA (reCAPTCHA, hCaptcha, Turnstile) #

Test censé prouver qu'un humain est aux commandes : cases à cocher, images à sélectionner, ou vérification invisible (reCAPTCHA v3, Turnstile de Cloudflare). Face à un CAPTCHA, on l'évite en amont (bonne empreinte, bonne IP) plutôt qu'on ne le « casse » : le résoudre systématiquement est coûteux et fragile.

Détection et empreintes

Empreinte TLS (JA3 / JA4) #

Signature calculée à partir de la façon dont un client négocie la connexion chiffrée (ordre des suites de chiffrement, extensions...). Une bibliothèque HTTP standard produit une empreinte différente d'un vrai Chrome : les protections s'en servent pour repérer les bots avant même de lire la requête.

Empreinte de navigateur #

Ensemble de signaux collectés en JavaScript pour identifier un navigateur : rendu canvas/WebGL, polices, résolution, timezone, propriétés navigator... Un navigateur automatisé mal configuré laisse des traces (navigator.webdriver, incohérences) que les anti-bots détectent.

Honeypot #

Piège invisible pour l'humain mais visible pour un robot : un lien ou un champ caché qu'un scraper naïf va suivre ou remplir, ce qui le trahit. Le contourner suppose de ne parcourir que les éléments réellement visibles et cliquables.

Analyse comportementale #

Détection fondée non sur ce que le client est, mais sur ce qu'il fait : vitesse de navigation, mouvements de souris, régularité inhumaine, absence de chargement des ressources annexes. Un trafic trop parfait ou trop rapide devient suspect.

Proxys et adresses IP

Proxy résidentiel #

Proxy dont l'adresse IP appartient à un fournisseur d'accès grand public (une vraie box, un vrai abonné). Aux yeux d'un site, la requête ressemble à celle d'un particulier, ce qui la rend bien plus crédible qu'une IP de datacenter. C'est souvent nécessaire face aux protections sévères.

Doc : mode proxy et pays de sortie →

Proxy datacenter #

Proxy hébergé chez un fournisseur cloud/hébergeur. Rapide et bon marché, mais son IP appartient à des plages connues et facilement bloquées par les protections. Suffisant pour les sites peu protégés, insuffisant pour les marketplaces sévères.

Proxy mobile #

Proxy dont l'IP provient d'un réseau mobile (4G/5G). Comme des milliers d'abonnés partagent la même IP via le NAT de l'opérateur, la bloquer est risqué pour le site : ces IP sont donc parmi les plus tolérées, mais aussi les plus chères.

Rotation d'IP #

Fait de changer d'adresse IP à chaque requête (ou régulièrement) pour répartir le trafic et éviter les seuils de rate limiting. Efficace pour du volume, mais à proscrire au sein d'une session connectée, où l'IP doit au contraire rester stable.

Session collante (sticky) #

Configuration où l'on conserve la même IP de sortie pendant toute une session, plutôt que d'en changer. Indispensable dès qu'on est connecté ou qu'un panier/formulaire s'étale sur plusieurs pages : changer d'IP en cours de route casse la session et éveille les soupçons.

Doc : sessions et connexions →

Rendu et navigation

Rendu JavaScript #

Beaucoup de sites construisent leur contenu dans le navigateur, après coup, en JavaScript. Récupérer le HTML brut ne suffit alors pas : il faut exécuter la page (via un vrai navigateur) pour que la donnée apparaisse. C'est le « rendu JS ».

Doc : activer le rendu JS →

Navigateur headless #

Vrai navigateur (Chrome, Firefox) piloté par programme, sans interface graphique, via des outils comme Playwright, Puppeteer ou nodriver. Il exécute le JavaScript et imite un humain, mais mal configuré il expose des signaux d'automatisation que les anti-bots repèrent.

Résolution de CAPTCHA #

Recours à un service (humains ou modèles) pour répondre à un CAPTCHA à la volée. C'est un dernier recours : lent, coûteux et instable. Mieux vaut éviter le CAPTCHA en amont, par une empreinte et une IP crédibles, plutôt que de le résoudre en boucle.

Cookies de session #

Jetons déposés par le site pour reconnaître un client d'une requête à l'autre (connexion, panier, défi anti-bot validé). Les conserver et les renvoyer correctement est essentiel : les perdre relance souvent le contrôle anti-bot depuis zéro.

Passer de la théorie à la pratique

WyndPath gère proxys, rendu JS et anti-bot en un seul appel. Facturé au succès.

Démarrer gratuitement →