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 evento | Descripción |
---|---|
Captcha.detected | CAPTCHA detectado |
Captcha.solveFinished | Resolución de CAPTCHA completada |
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 resolución |
message | string | Mensaje de estado: "NOT_DETECTED" "SOLVE_FINISHED" "SOLVE_FAILED" "INVALID" |
token? | string | Token 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 API | Descripción |
---|---|
Captcha.setAutoSolve | Controla el comportamiento de resolución automática de CAPTCHA |
Captcha.setToken | Establece el token de autenticación para el servicio CAPTCHA |
Captcha.setConfig | Configura todos los parámetros del solucionador de CAPTCHA |
Captcha.solve | Activa 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' }