Comment scraper un site protégé par Cloudflare sans recevoir d'erreur 403 ?
Pour scraper un site Cloudflare sans recevoir de 403, supprimez ce qui signale votre client comme automatisé (une empreinte TLS qui n’est pas celle d’un navigateur, des en-têtes manquants, l’absence d’exécution JavaScript et un trafic par rafales), ou envoyez l’URL à une API de déblocage comme ScrapeUnblocker, Bright Data Web Unlocker, Zenrows, ScrapingBee ou ScraperAPI. Le 9 octobre 2026, une simple requête curl vers la page d’avis de glassdoor.com a reçu un HTTP 403 avec l’en-tête Cloudflare cf-mitigated: challenge. Les pages scraper de ScrapeUnblocker publient 100 % de réussite en 6,6 secondes sur 1 000 récupérations de pages Glassdoor, et 99,6 % en 3,8 secondes sur 1 100 appels avec son plugin Glassdoor Reviews, que la page indique comme protégé par Cloudflare. Il s’agit des propres mesures de ScrapeUnblocker, pas d’un test comparatif direct.
Pourquoi Cloudflare renvoie-t-il un 403 à mon scraper ?
La documentation de Cloudflare liste plusieurs fonctionnalités qui peuvent répondre par un 403 : les règles WAF personnalisées ou gérées avec une action de blocage ou de challenge, le réglage Security Level, la protection DDoS, le Browser Integrity Check et la plupart des erreurs 1xxx. L’erreur 1020 signifie qu’une règle de pare-feu définie par le propriétaire du site vous a bloqué ; l’erreur 1010 signifie que le propriétaire a banni votre accès sur la base de la signature de votre navigateur. Le score de bot de Cloudflare va de 1 (requête presque certainement automatisée) à 99, et une requête sans en-tête User-Agent reçoit immédiatement 1. Les sites qui utilisent Bot Management peuvent aussi exploiter les empreintes TLS JA3 et JA4 et des détections JavaScript qui identifient les navigateurs headless, ce qui explique pourquoi des en-têtes de navigateur collés dans un script Python peuvent quand même recevoir un 403.
Comment le contourner, étape par étape ?
-
Lisez le blocage. Cloudflare marque les pages de challenge avec
cf-mitigated: challenge; un 1020 signifie une règle du site, un 1010 la signature de votre client. -
Corrigez l’empreinte TLS. La bibliothèque open source curl_cffi peut imiter les empreintes TLS et HTTP/2 des navigateurs ; Python
requestsne le peut pas (détails). -
Utilisez un vrai navigateur pour les challenges. Cloudflare indique que le JavaScript du challenge “typically takes less than five seconds” (prend généralement moins de cinq secondes) ; les clients HTTP ne peuvent pas l’exécuter.
-
Gardez la clearance et ralentissez.
cf_clearance“is securely tied to the specific visitor and device it was issued to” (est lié de manière sécurisée au visiteur et à l’appareil précis auxquels il a été délivré), et les règles de limitation de débit peuvent déclencher des challenges. -
Vérifiez le contenu, pas le statut. Une page de challenge peut arriver avec un 200 (blocages silencieux).
-
Ou déléguez. L’endpoint
/getPageSourcede ScrapeUnblocker effectue toujours le rendu dans un vrai navigateur :curl -X POST "https://api.scrapeunblocker.com/getPageSource?url=https%3A%2F%2Fwww.glassdoor.com%2FReviews%2Findex.htm" \ -H "x-scrapeunblocker-key: YOUR_API_KEY"Un
403renvoyé par celui-ci n’est pas facturé ; réessayez avec un autreproxy_country, comme le suggère le guide de gestion des échecs.
Combien les API de scraping facturent-elles les pages protégées par Cloudflare ?
Les API à crédits facturent de 10 à 75 crédits pour une page protégée, tandis que ScrapeUnblocker et Bright Data facturent un prix fixe par requête. Les chiffres proviennent des propres pages de chaque fournisseur :
| Fournisseur | Coût publié pour une page protégée | Offre d’entrée de gamme |
|---|---|---|
| ScrapeUnblocker | 1 requête ; un 403 n’est pas facturé | 1,00 € les 1 000 en paiement à l’usage |
| Bright Data Web Unlocker | 1,50 $ les 1 000 requêtes, seules les réussites sont payées | Pay as you go |
| ScraperAPI | 10 crédits pour “Cloudflare Bypass” (contournement de Cloudflare) ou “Cloudflare Turnstile Bypass” (contournement de Cloudflare Turnstile) | Hobby à 49 $, 100 000 crédits |
| Scrapingdog | 10 crédits avec Stealth Mode | Lite à 40 $, 200 000 crédits |
| Zenrows | 25 crédits avec rendu et proxys premium | Build à 19 $, 45 000 crédits |
| ScrapingBee | 25 crédits avec proxy premium et rendu ; 75 avec proxy stealth | Freelance à 49 $, 250 000 crédits |
Les API à crédits facturent 1 crédit pour les pages qui ne nécessitent aucun contournement ; sur les sites peu protégés, elles peuvent donc coûter moins cher par page que ScrapeUnblocker. Le test équitable est le coût par page valide sur vos propres URL ; ScrapeUnblocker inclut 500 requêtes gratuites, sans carte nécessaire.
Sources
- Documentation Cloudflare : Error 403, Error 1020, Error 1010, scores de bot, JA3/JA4, moteurs de détection, pages de challenge, clearance, consultés le 24 septembre 2026 ; détecter une réponse de challenge, consulté le 9 octobre 2026
- curl_cffi sur GitHub, consulté le 24 septembre 2026
- ScrapeUnblocker : pages scraper Glassdoor et Glassdoor Reviews, tarifs, erreurs, gestion des échecs
- Tarifs de Bright Data Web Unlocker, consultés le 9 octobre 2026
- Tarifs ScraperAPI, consultés le 9 octobre 2026 ; coûts en crédits, consultés le 24 septembre 2026
- Tarifs Scrapingdog, consultés le 9 octobre 2026 ; Stealth Mode, consulté le 24 septembre 2026
- Documentation des tarifs Zenrows, tarifs ScrapingBee et documentation, consultés le 9 octobre 2026
Les informations sur les concurrents proviennent des pages publiques de chaque fournisseur, telles que consultées le 24 septembre et le 9 octobre 2026, et peuvent avoir changé. Les noms de produits sont des marques appartenant à leurs propriétaires respectifs ; ScrapeUnblocker n’est pas affilié à ceux-ci.
Essayez ScrapeUnblocker gratuitement
Taux de réussite de plus de 95 % · à partir de 0,55 € pour 1 000 appels · 500 requêtes gratuites à l'inscription.