For the complete documentation index, see llms.txt. This page is also available as Markdown.

Gestión de CAPTCHA

Aprende sobre los mecanismos de detección y gestión de CAPTCHA de Headless Browser y cómo usarlos.

De forma predeterminada, Oxylabs Headless Browser detecta y gestiona automáticamente los CAPTCHAs en cuanto se carga una página. No se requiere ninguna configuración ni ajuste de parámetros.

Si un sitio objetivo muestra desafíos de forma dinámica durante interacciones de varios pasos, o si necesita monitoreo avanzado de eventos y optimizaciones de velocidad, puede usar los parámetros, eventos y técnicas documentados a continuación.

Nota: Las tasas de éxito de acceso dependen mucho del objetivo. Los resultados pueden variar según la configuración específica del sitio objetivo, los niveles de aplicación (por ejemplo, seguimiento pasivo de huellas digitales frente a escalada activa del desafío) y la reputación en tiempo real de la IP residencial de la sesión.

Monitoreo de eventos CAPTCHA

Puede monitorear el ciclo de vida del solucionador. La extensión interna oxylabs-runtime del navegador emite eventos de estado directamente al window objeto. Al registrar un detector de eventos personalizado "message", su script puede rastrear estos eventos para pausar y reanudar acciones.

Tipo de evento
Descripción

oxylabs-captcha-start

El solucionador ha detectado un CAPTCHA e inició el proceso de manejo.

oxylabs-captcha-end

El solucionador se completó correctamente y gestionó el desafío.

oxylabs-captcha-solve-end

Evento alternativo de finalización emitido después del éxito.

oxylabs-captcha-error

El solucionador no pudo gestionar el desafío.

La auto-resolución está habilitada de forma predeterminada. Si agrega solve_captcha=false a su URL de conexión, el manejo automático se desactiva y estos eventos no se emitirán.

Ejemplos de código

Estos ejemplos muestran cómo inyectar un init script para capturar eventos CAPTCHA en tiempo de ejecución antes de la navegación de la página, de modo que su script se pause durante el manejo activo.

from playwright.sync_api import sync_playwright

username = "USERNAME_abc12"
password = "PASSWORD"
endpoint = "ubc.oxylabs.io"
# Ensure solve_captcha=true is active (default) to emit events
browser_url = f"wss://{username}:{password}@{endpoint}?solve_captcha=true"

def run():
    with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp(browser_url)
        ctx = browser.contexts[0]
        page = ctx.new_page()

        # Inject listener BEFORE navigation
        ctx.add_init_script("""
            window.addEventListener("message", (event) => {
                if (event.data && event.data.source === "oxylabs-runtime") {
                    window.__extensionStatus = event.data.type;
                }
            });
        """)

        page.goto("https://example.com/captcha-page", wait_until="domcontentloaded")

        # Wait for solver to complete (polls status flag)
        page.wait_for_function(
            """() => {
                const status = window.__extensionStatus;
                if (status === "oxylabs-captcha-error") {
                    throw new Error("CAPTCHA solving failed");
                }
                return status === "oxylabs-captcha-solve-end" || status === "oxylabs-captcha-end";
            }""",
            timeout=60000
        )
        print("CAPTCHA solved. Resuming automation...")
        browser.close()

if __name__ == "__main__":
    run()

Disparadores manuales dinámicos

Algunos objetivos solo muestran desafíos CAPTCHA después de acciones del usuario (por ejemplo, después de hacer clic en un botón interactivo de envío de formulario o de realizar un desplazamiento dinámico).

Puede activar programáticamente el controlador de CAPTCHA de Headless Browser en cualquier momento de su sesión usando window.postMessage evento directamente al objeto window:

Para obtener más información sobre los tipos de CAPTCHA compatibles, póngase en contacto con el soporte de Oxylabs (chat en vivo o correo electrónico) o con su Gestor de cuenta dedicado.

Patrón de activación estándar

Para elementos típicos, active el solucionador inmediatamente después de ejecutar la acción del usuario:

Para obtener más información sobre los tipos de CAPTCHA compatibles o excepciones para tipos específicos, póngase en contacto con el soporte de Oxylabs (chat en vivo o correo electrónico) o con su Gestor de cuenta dedicado para obtener más detalles.

Optimización de velocidad

El manejo de CAPTCHAs añade latencia mecánica de ejecución. Al rastrear objetivos que imponen puertas de CAPTCHA repetitivas, considere estos métodos para mejorar el rendimiento:

Reutilizar sesiones

Una vez que una sesión de navegador remoto completa un CAPTCHA en un dominio, la verificación se guarda. Navegue repetidamente o realice pasos adicionales de la página dentro de la misma sesión del navegador sin volver a activar las rutinas de resolución del desafío.

Varias pestañas

En lugar de inicializar conexiones WebSocket separadas (lo que lanza espacios aislados distintos con grupos de cookie vacíos), ejecute tareas concurrentes abriendo varias pestañas o contextos dentro de su sesión existente. Esto aborda la sobrecarga de conexión y verificación en todas las páginas.

Desactivación adaptativa

Una vez que se ha establecido una señal fiable de confianza de la sesión, puede desactivar por completo las comprobaciones del solucionador en segundo plano conectándose con solve_captcha=false. Esto evita la latencia de inicialización del proceso en dominios donde su sesión ya pasa libremente sin presentación de desafíos.

Última actualización

¿Te fue útil?