API CDP

Scrapeless Scraping Browser extiende la funcionalidad estándar de CDP (Chrome DevTools Protocol) con una serie de potentes funciones personalizadas para mejorar las capacidades de automatización del navegador. Esta documentación 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 capacidades avanzadas de solución de CAPTCHA que pueden manejar automáticamente los tipos de CAPTCHA principales que aparecen en las páginas web.

Tipos de CAPTCHA compatibles

  • reCaptcha
  • Cloudflare Turnstile

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.solveFinishedCAPTCHA resuelto
Captcha.solveFailedResolución de CAPTCHA fallida

Estructura de datos de respuesta del evento

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

Ejemplos 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. Estas son las API compatibles:

Nombre de la APIDescripción
Captcha.setAutoSolveControlar el comportamiento de resolución automática de CAPTCHA
Captcha.setTokenEstablecer el token de autenticación para el servicio CAPTCHA
Captcha.setConfigConfigurar todos los parámetros del solucionador de CAPTCHA
Captcha.solveActivar 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

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

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

3. Captcha.setConfig

Configurar todos los parámetros para el solucionador de CAPTCHA.

await client.send('Captcha.setConfig', {
    apiKey: 'your-token',
    autoSolve: true,
    enabledForRecaptcha: true,    // Habilitar la resolución de reCAPTCHA
    enabledForRecaptchaV3: true,  // Habilitar la resolución de reCAPTCHA v3
    enabledForTurnstile: true    // Habilitar la resolución de Turnstile
});

4. Captcha.solve

Activar 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' }