API CDP

Scrapeless Scraping Browser extiende la funcionalidad estándar del Protocolo CDP (Chrome DevTools Protocol), añadiendo una serie de potentes funciones personalizadas para mejorar las capacidades de automatización del navegador. Este documento cubre principalmente las funciones CDP relacionadas con el manejo de CAPTCHA.

Características del Solucionador de CAPTCHA

Descripción general de las características

Scraping Browser incluye funciones avanzadas de solución de CAPTCHA, capaces de manejar automáticamente los tipos de CAPTCHA más comunes que se encuentran en las páginas web.

Tipos de CAPTCHA compatibles

  • reCaptcha
  • Cloudflare Turnstile
  • Cloudflare 5s Challenge
  • AWS WAF

Mecanismo de Monitoreo de Eventos

Eventos principales

Scraping Browser proporciona tres eventos principales para monitorear el proceso de resolución de CAPTCHA:

Nombre del eventoDescripción
Captcha.detectedCAPTCHA detectado
Captcha.solveFinishedResolución de CAPTCHA completada
Captcha.solveFailedResolución de CAPTCHA fallida

Estructura de datos de respuesta del evento

CampoTipoDescripción
typestringTipo de CAPTCHA: recaptcha turnstile
successbooleanResultado de la resolución
messagestringMensaje de estado: "NOT_DETECTED" "SOLVE_FINISHED" "SOLVE_FAILED" "INVALID"
token?stringToken devuelto al tener éxito (opcional)

Ejemplo de implementación

// Escuchar eventos de resolución de CAPTCHA
const client = await page.createCDPSession();
 
client.on('Captcha.detected', (result) => {
  console.log('Captcha detected:', result);
});
 
await new Promise((resolve, reject) => {
  client.on('Captcha.solveFinished', (result) => {
    if (result.success) resolve();
  });
  client.on('Captcha.solveFailed', () =>
    reject(new Error('Captcha solve failed'))
  );
  setTimeout(() =>
      reject(new Error('Captcha solve timeout')),
    5 * 60 * 1000
  );
});

API de Configuración Avanzada

Scraping Browser proporciona una serie de API avanzadas para un control preciso sobre el comportamiento del solucionador de CAPTCHA. Se admiten las siguientes API:

Nombre de la APIDescripción
Captcha.setAutoSolveControla el comportamiento de resolución automática de CAPTCHA
Captcha.setTokenEstablece el token de autenticación para el servicio CAPTCHA
Captcha.setConfigConfigura todos los parámetros del solucionador de CAPTCHA
Captcha.solveActiva manualmente el proceso de resolución de CAPTCHA

Descripción detallada de la API

1. Captcha.setAutoSolve

Interfaz de configuración para controlar el comportamiento de resolución automática de CAPTCHA.

const client = await page.createCDPSession();
await client.send('Captcha.setAutoSolve', {
    autoSolve: false,
    options: [{
        type: 'recaptcha',  // Opciones: recaptcha | turnstile
        disabled: false,
    }]
});

2. Captcha.setToken

Establece el token de autenticación para el servicio de resolución de CAPTCHA.

await client.send('Captcha.setToken', {
    apiKey: 'your-token'
});

3. Captcha.setConfig

Configura todos los parámetros del solucionador de CAPTCHA.

await client.send('Captcha.setConfig', {
    config: JSON.stringify(
        {
            apiKey: "your-token",
            autoSolve: true,
            enabledForRecaptcha: true,
            enabledForRecaptchaV3: true,
            enabledForTurnstile: true
        }
    )
});

4. Captcha.solve

Activa manualmente el proceso de resolución de CAPTCHA.

const result = await client.send('Captcha.solve', {
    detectTimeout: 10 * 1000,
    options: JSON.stringify([{
        type: 'rcaptcha',
        disabled: true,  // Deshabilitar la resolución de rCaptcha
    }])
});
console.log(result);  // { type: 'recaptcha', success: true, message: 'solve_finished', token: 'xxx' }