Cómo solucionar el error "Enable JavaScript and cookies to continue"
¿Por qué ocurre este error?
Este mensaje aparece cuando Cloudflare (o un proxy similar como Turnstile, Akamai, o un WAF personalizado) bloquea la solicitud porque:
- El navegador no ejecuta JavaScript (o está deshabilitado).
- Las cookies no están habilitadas o no se están enviando.
- El cliente (navegador o scraper) no completa el challenge de seguridad (como un CAPTCHA o verificación de navegador).
En entornos automatizados (scraping, scripts, bots), esto suele suceder porque:
- Se usa una herramienta sin motor JS (p. ej.,
requests,curl,axiossin renderizado). - No se persisten ni envían cookies entre solicitudes.
- El User-Agent o headers no simulan un navegador real.
Solución definitiva (pasos)
✅ Caso 1: Uso normal en navegador (usuario final)
-
Habilita JavaScript en tu navegador:
- Chrome:
Configuración > Privacidad y seguridad > Seguridad > Habilitar JavaScript. - Firefox:
Preferencias > Privacidad y seguridad > Permisos > Habilitar JavaScript.
- Chrome:
-
Habilita cookies:
- Asegúrate de que no estés en modo incógnito/privado (muchos bloquean cookies de terceros).
- Verifica que no tengas extensiones como uBlock Origin o Privacy Badger bloqueando scripts de Cloudflare.
- Limpia cookies y caché del dominio afectado.
- Reintenta la solicitud.
✅ Caso 2: Automatización / scraping (Node.js, Python, etc.)
No puedes usar fetch, requests, o curl directamente. Necesitas un navegador real con soporte JS y gestión de cookies.
🔧 Solución recomendada: Usa Playwright (o Puppeteer)
Ejemplo en Python con Playwright:
pip install playwright
playwright install chromium
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False) # headless=True para producción
context = browser.new_context()
page = context.new_page()
# Navega a la URL (Cloudflare resolverá el challenge automáticamente)
page.goto("https://ejemplo.com", wait_until="networkidle")
# Ahora puedes extraer contenido o interactuar
content = page.content()
print(content)
browser.close()
⚠️ Clave: Playwright ejecuta JS, maneja cookies, y simula un navegador real. Cloudflare lo detecta como "humano" y permite el acceso.
Alternativa: Usa cloudscraper (Python) — solo para desafíos simples
pip install cloudscraper
import cloudscraper
scraper = cloudscraper.create_scraper()
resp = scraper.get("https://ejemplo.com")
print(resp.text)
❗ Limitación:
cloudscraperfalla con Cloudflare Under Attack Mode o Turnstile. Usa Playwright para casos robustos.
Pro-tip: Evita bloqueos futuros
-
Simula headers reales: Usa
User-Agent,Accept-Language,Referer, etc. - Incluye delays: No hagas peticiones rápidas (Cloudflare detecta bots por tasa).
- No uses IPs compartidas o de VPS conocidos: Muchos están en listas negras.
- Si es scraping profesional: Considera usar proxies rotativos + headless browser + rotación de headers.
💡 Regla de oro: Si el servidor usa Cloudflare Under Attack Mode, no hay atajo sin ejecutar JS. El desafío es intencionalmente diseñado para bloquear clientes sin motor JS.
✅ Resultado esperado: El bloqueo desaparece y el contenido se carga correctamente.
Top comments (0)