Scarnox · Blog

Navegador headless detectado: causas y soluciones (2026)

Un sitio muestra "navegador headless detectado", o sirve discretamente otra página a tu navegador automatizado. Los sitios hacen esto porque un navegador headless se ejecuta sin ventana y a menudo se diferencia de un navegador de escritorio normal en pequeños detalles medibles. Esta guía explica qué señales miran los sitios, cómo diagnosticar lo que expone tu propio navegador y cómo es una solución sensata. También cubre el punto en el que la respuesta correcta es parar, o tratar la comprobación como un paso de captcha.

Por qué los sitios comprueban los navegadores headless

Los frameworks de automatización controlan un motor de navegador real, así que la mayor parte de la página funciona igual. Las diferencias aparecen en los bordes:

Los sitios combinan estas señales en una puntuación. Una puntuación baja puede significar una degradación silenciosa, un conjunto de comprobaciones adicionales o un bloqueo.

Paso 1: mira qué expone tu navegador

Antes de cambiar nada, mira qué puede leer una página desde tu automatización. El script siguiente abre una página que controlas e imprime las señales que importan. Es un diagnóstico: úsalo en tus propias páginas de prueba, no para sondear los sistemas de otras personas.

from playwright.sync_api import sync_playwright

CHECK = """() => ({
    webdriver: navigator.webdriver,
    languages: navigator.languages,
    plugins: navigator.plugins.length,
    userAgent: navigator.userAgent,
    screen: [screen.width, screen.height],
    viewport: [window.innerWidth, window.innerHeight],
    timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
})"""

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto("https://example.com")  # cambia por una página que sea tuya
    print(page.evaluate(CHECK))
    browser.close()

Ejecuta el mismo script con headless=False y compara las dos salidas. Las diferencias son las cosas que un sitio podría notar.

Paso 2: corrige las incoherencias, no solo las marcas

Ocultar una marca y dejar las demás sin cambios es el error más común. Un user agent que dice Windows mientras las fuentes, la zona horaria y el tamaño de pantalla describen un servidor Linux es una señal más fuerte que una sola propiedad. Busca un entorno internamente coherente:

Playwright permite configurar varios de estos valores en un solo lugar:

context = browser.new_context(
    locale="en-US",
    timezone_id="America/New_York",
    viewport={"width": 1366, "height": 768},
)
page = context.new_page()

Paso 3: ve más despacio y actúa como un visitante

La automatización se hace obvia cuando va más rápido de lo que puede ir una persona. Añade pausas realistas entre cargas de página, evita hacer clic en el mismo elemento con un ritmo perfecto y no abras cientos de páginas en paralelo desde una misma dirección. Hacer menos peticiones, y más lentas, también reduce la carga sobre el sitio, que es lo correcto de todas formas.

Paso 4: sabe cuándo la comprobación es un captcha

Algunos flujos de detección terminan en un desafío en lugar de en un bloqueo. Verás un widget de captcha, y ese paso necesita un token de un solver. El tipo de captcha activo en Scarnox hoy es PopularCaptcha. La guía de PopularCaptcha en Python muestra cómo se solicita y se envía el token. Otros widgets, como Cloudflare Turnstile, están en la hoja de ruta pero aún no están activos, así que consulta tipos de captcha explicados antes de planificar en torno a uno.

Que haya un paso de captcha no significa que el resto de tu configuración sea correcta. Si el mismo sitio bloquea cada sesión headless sin importar cómo la configures, es una señal clara de que el propietario no quiere acceso automatizado. Respétalo.

Qué no hacer

No intentes ocultar la automatización a un sitio que la prohíbe, y no uses herramientas de evasión de detección para saltarte controles de acceso. Eso es un tipo de proyecto distinto de las pruebas y la recopilación de datos públicos que cubre esta guía. Si tu proyecto necesita un acceso que no te han concedido, pide permiso al propietario del sitio o busca una API oficial o un feed de datos.

Scrapea de forma responsable

Dónde seguir

Si tu automatización es para pruebas end-to-end, el enfoque es diferente: consulta captcha en pruebas automatizadas. Si usas una configuración de Playwright o Puppeteer, gestión de captcha con Playwright y Puppeteer explica dónde va el token.

Empieza con crédito de prueba gratis, sin tarjeta: crea una cuenta y prueba el flujo de PopularCaptcha en tu propia página. Para ver las tarifas actuales, consulta la página de precios.

Próximos pasos