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 evento | Descripción |
---|---|
Captcha.detected | CAPTCHA detectado |
Captcha.solveFinished | CAPTCHA resuelto |
Captcha.solveFailed | Resolución de CAPTCHA fallida |
Estructura de datos de respuesta del evento
Campo | Tipo | Descripción |
---|---|---|
type | string | Tipo de CAPTCHA: recaptcha turnstile |
success | boolean | Resultado de la solución |
message | string | Mensaje de estado: "NOT_DETECTED" "SOLVE_FINISHED" "SOLVE_FAILED" "INVALID" |
token? | string | Token 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 API | Descripción |
---|---|
Captcha.setAutoSolve | Controlar el comportamiento de resolución automática de CAPTCHA |
Captcha.setToken | Establecer el token de autenticación para el servicio CAPTCHA |
Captcha.setConfig | Configurar todos los parámetros del solucionador de CAPTCHA |
Captcha.solve | Activar 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' }