API CDP

Scrapeless Scraping Browser mở rộng chức năng CDP (Chrome DevTools Protocol) tiêu chuẩn với một loạt các hàm tùy chỉnh mạnh mẽ để nâng cao khả năng tự động hóa trình duyệt. Tài liệu này chủ yếu đề cập đến các hàm CDP liên quan đến xử lý CAPTCHA.

Tính năng giải quyết CAPTCHA

Tổng quan về tính năng

Scraping Browser bao gồm các khả năng giải quyết CAPTCHA nâng cao có thể tự động xử lý các loại CAPTCHA phổ biến xuất hiện trên các trang web.

Các loại CAPTCHA được hỗ trợ

  • reCaptcha
  • Cloudflare Turnstile

Cơ chế giám sát sự kiện

Các sự kiện cốt lõi

Scraping Browser cung cấp ba sự kiện cốt lõi để giám sát quá trình giải quyết CAPTCHA:

Tên sự kiệnMô tả
Captcha.detectedPhát hiện CAPTCHA
Captcha.solveFinishedCAPTCHA đã được giải quyết
Captcha.solveFailedGiải quyết CAPTCHA thất bại

Cấu trúc dữ liệu phản hồi sự kiện

TrườngKiểu dữ liệuMô tả
typestringLoại CAPTCHA: recaptcha turnstile
successbooleanKết quả giải quyết
messagestringThông báo trạng thái: "NOT_DETECTED" "SOLVE_FINISHED" "SOLVE_FAILED" "INVALID"
token?stringToken được trả về khi thành công (tùy chọn)

Ví dụ triển khai

// Lắng nghe các sự kiện giải quyết 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 cấu hình nâng cao

Scraping Browser cung cấp một loạt các API nâng cao để kiểm soát chi tiết hành vi của bộ giải quyết CAPTCHA. Dưới đây là các API được hỗ trợ:

Tên APIMô tả
Captcha.setAutoSolveĐiều khiển hành vi tự động giải quyết CAPTCHA
Captcha.setTokenĐặt token xác thực cho dịch vụ CAPTCHA
Captcha.setConfigCấu hình tất cả các tham số của bộ giải quyết CAPTCHA
Captcha.solveKích hoạt thủ công quá trình giải quyết CAPTCHA

Mô tả chi tiết API

1. Captcha.setAutoSolve

Giao diện cấu hình để điều khiển hành vi tự động giải quyết CAPTCHA.

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

2. Captcha.setToken

Đặt token xác thực cho dịch vụ giải quyết CAPTCHA.

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

3. Captcha.setConfig

Cấu hình tất cả các tham số cho bộ giải quyết CAPTCHA.

await client.send('Captcha.setConfig', {
    apiKey: 'your-token',
    autoSolve: true,
    enabledForRecaptcha: true,    // Bật giải quyết reCAPTCHA
    enabledForRecaptchaV3: true,  // Bật giải quyết reCAPTCHA v3
    enabledForTurnstile: true    // Bật giải quyết Turnstile
});

4. Captcha.solve

Kích hoạt thủ công quá trình giải quyết CAPTCHA.

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