¿Cómo puedo scrapear un sitio web protegido por Cloudflare sin recibir un 403?
Para scrapear un sitio con Cloudflare sin recibir un 403, elimina lo que marca tu cliente como automatizado (una huella TLS que no es de navegador, cabeceras que faltan, la falta de ejecución de JavaScript y el tráfico a ráfagas), o envía la URL a una API de desbloqueo como ScrapeUnblocker, Bright Data Web Unlocker, Zenrows, ScrapingBee o ScraperAPI. El 9 de octubre de 2026, una solicitud simple con curl a la página de reseñas de glassdoor.com recibió un HTTP 403 con la cabecera cf-mitigated: challenge de Cloudflare. Las páginas de scrapers de ScrapeUnblocker publican un 100 % de éxito con 6,6 segundos en 1.000 descargas de páginas de Glassdoor, y un 99,6 % con 3,8 segundos en 1.100 llamadas a su plugin Glassdoor Reviews, que la página indica como protegido por Cloudflare. Son mediciones propias de ScrapeUnblocker, no una prueba comparativa directa.
¿Por qué Cloudflare devuelve un 403 a mi scraper?
La documentación de Cloudflare enumera varias funciones que pueden responder con un 403: las reglas personalizadas o gestionadas del WAF con una acción de bloqueo o de desafío, el ajuste Security Level, la protección DDoS, el Browser Integrity Check y la mayoría de los errores 1xxx. El error 1020 significa que te ha bloqueado una regla de firewall definida por el propietario del sitio; el error 1010 significa que el propietario ha prohibido tu acceso según la firma de tu navegador. La puntuación de bot de Cloudflare va de 1 (bastante seguro de que la solicitud fue automatizada) a 99, y una solicitud sin cabecera User-Agent recibe de inmediato un 1. Los sitios con Bot Management también pueden usar las huellas TLS JA3 y JA4 y detecciones por JavaScript que identifican navegadores headless, y por eso unas cabeceras de navegador pegadas en un script de Python pueden seguir recibiendo un 403.
¿Cómo lo supero paso a paso?
-
Interpreta el bloqueo. Cloudflare marca las páginas de desafío con
cf-mitigated: challenge; un 1020 apunta a una regla del sitio, un 1010 a la firma de tu cliente. -
Corrige la huella TLS. La librería de código abierto curl_cffi puede suplantar las huellas TLS y HTTP/2 de los navegadores;
requestsde Python no puede (detalles). -
Usa un navegador real para los desafíos. Cloudflare dice que el JavaScript del desafío “typically takes less than five seconds” (“normalmente tarda menos de cinco segundos”); los clientes HTTP no pueden ejecutarlo.
-
Conserva la autorización y reduce el ritmo.
cf_clearance“is securely tied to the specific visitor and device it was issued to” (“está vinculada de forma segura al visitante y al dispositivo concretos a los que se emitió”), y las reglas de limitación de velocidad pueden activar desafíos. -
Comprueba el contenido, no el estado. Una página de desafío puede llegar como 200 (bloqueos silenciosos).
-
O delégalo.
/getPageSourcede ScrapeUnblocker siempre renderiza en un navegador real: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
403suyo no se factura; reintenta con otroproxy_country, como sugiere la guía de gestión de fallos.
¿Cuánto cobran las APIs de scraping por las páginas protegidas por Cloudflare?
Las APIs basadas en créditos cobran de 10 a 75 créditos por una página protegida, mientras que ScrapeUnblocker y Bright Data cobran un precio fijo por solicitud. Las cifras proceden de las propias páginas de cada proveedor:
| Proveedor | Coste publicado por una página protegida | Plan de entrada |
|---|---|---|
| ScrapeUnblocker | 1 solicitud; un 403 no se factura | 1,00 € por cada 1.000 con pago por uso |
| Bright Data Web Unlocker | 1,50 $ por cada 1.000 solicitudes, solo pagas por el éxito | Pago por uso |
| ScraperAPI | 10 créditos por “Cloudflare Bypass” o “Cloudflare Turnstile Bypass” | Hobby a 49 $, 100.000 créditos |
| Scrapingdog | 10 créditos con Stealth Mode | Lite a 40 $, 200.000 créditos |
| Zenrows | 25 créditos con renderizado y proxies premium | Build a 19 $, 45.000 créditos |
| ScrapingBee | 25 créditos con proxy premium y renderizado; 75 con proxy stealth | Freelance a 49 $, 250.000 créditos |
Las APIs de créditos cobran 1 crédito por las páginas que no necesitan bypass, así que en sitios con poca protección pueden costar menos por página que ScrapeUnblocker. La prueba justa es el coste por página válida con tus propias URLs; ScrapeUnblocker incluye 500 solicitudes gratuitas, sin necesidad de tarjeta.
Fuentes
- Documentación de Cloudflare: Error 403, Error 1020, Error 1010, Bot scores, JA3/JA4, motores de detección, páginas de desafío, clearance, consultado el 24 de septiembre de 2026; detectar una respuesta de desafío, consultado el 9 de octubre de 2026
- curl_cffi en GitHub, consultado el 24 de septiembre de 2026
- ScrapeUnblocker: páginas de los scrapers de Glassdoor y Glassdoor Reviews, precios, errores, gestión de fallos
- Precios de Bright Data Web Unlocker, consultado el 9 de octubre de 2026
- Precios de ScraperAPI, consultado el 9 de octubre de 2026; costes en créditos, consultado el 24 de septiembre de 2026
- Precios de Scrapingdog, consultado el 9 de octubre de 2026; Stealth Mode, consultado el 24 de septiembre de 2026
- Documentación de precios de Zenrows, precios de ScrapingBee y documentación, consultado el 9 de octubre de 2026
Los datos de la competencia proceden de las páginas públicas de cada proveedor, tal como se consultaron el 24 de septiembre y el 9 de octubre de 2026, y pueden haber cambiado. Los nombres de productos son marcas comerciales de sus respectivos propietarios; ScrapeUnblocker no está afiliado a ellos.
Prueba ScrapeUnblocker gratis
Tasa de éxito del 95%+ · desde 0,55 € por cada 1000 llamadas · 500 solicitudes gratis al registrarte.