API CDP

O Scrapeless Scraping Browser estende a funcionalidade padrão do CDP (Chrome DevTools Protocol) com uma série de poderosas funções personalizadas para aprimorar os recursos de automação do navegador. Esta documentação abrange principalmente as funções CDP relacionadas ao tratamento de CAPTCHA.

Recursos do Solver de CAPTCHA

Visão Geral dos Recursos

O Scraping Browser inclui recursos avançados de solução de CAPTCHA que podem lidar automaticamente com os tipos principais de CAPTCHA que aparecem nas páginas da web.

Tipos de CAPTCHA Suportados

  • reCaptcha
  • Cloudflare Turnstile

Mecanismo de Monitoramento de Eventos

Eventos Principais

O Scraping Browser fornece três eventos principais para monitorar o processo de resolução de CAPTCHA:

Nome do EventoDescrição
Captcha.detectedCAPTCHA detectado
Captcha.solveFinishedCAPTCHA resolvido
Captcha.solveFailedFalha na resolução do CAPTCHA

Estrutura de Dados de Resposta do Evento

CampoTipoDescrição
typestringTipo de CAPTCHA: recaptcha turnstile
successbooleanResultado da solução
messagestringMensagem de status: "NOT_DETECTED" "SOLVE_FINISHED" "SOLVE_FAILED" "INVALID"
token?stringToken retornado com sucesso (opcional)

Exemplos de Implementação

// Listen for CAPTCHA solving events
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 Configuração Avançada

O Scraping Browser fornece uma série de APIs avançadas para controle preciso sobre o comportamento do solucionador de CAPTCHA. Aqui estão as APIs suportadas:

Nome da APIDescrição
Captcha.setAutoSolveControlar o comportamento de resolução automática de CAPTCHA
Captcha.setTokenDefinir o token de autenticação para o serviço CAPTCHA
Captcha.setConfigConfigurar todos os parâmetros do solucionador de CAPTCHA
Captcha.solveDisparar manualmente o processo de resolução de CAPTCHA

Descrição Detalhada da API

1. Captcha.setAutoSolve

Interface de configuração para controlar o comportamento de resolução automática de CAPTCHA.

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

2. Captcha.setToken

Definir o token de autenticação para o serviço de resolução de CAPTCHA.

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

3. Captcha.setConfig

Configurar todos os parâmetros para o solucionador de CAPTCHA.

await client.send('Captcha.setConfig', {
    apiKey: 'your-token',
    autoSolve: true,
    enabledForRecaptcha: true,    // Enable reCAPTCHA solving
    enabledForRecaptchaV3: true,  // Enable reCAPTCHA v3 solving
    enabledForTurnstile: true    // Enable Turnstile solving
});

4. Captcha.solve

Disparar manualmente o processo de resolução de CAPTCHA.

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