动态 CAPTCHA 识别与解决

了解 解锁浏览器 的 CAPTCHA 检测与解决机制以及如何使用它们。

默认情况下,Unblocking Browser 会在页面加载时自动检测并立即破解 CAPTCHA。不过,有些网站会在后续阶段显示 CAPTCHA,例如提交表单时弹出的窗口或在特定用户交互之后。

Unblocking Browser 允许你在会话中的任意时刻手动触发 CAPTCHA 检测与破解。要手动触发 CAPTCHA 破解,请执行以下代码向 window 对象发送消息:

window.postMessage({action: 'solve_captcha', type: '<captcha type>'}, '*')

支持的 CAPTCHA 类型包括:

  • hcaptcha

  • recaptcha

  • turnstile (Cloudflare CAPTCHA)

用法示例(Playwright / Puppeteer JavaScript):

// ...
await page.click('#form-submit');
// 现在我们知道应该会显示 CAPTCHA
await page.evaluate(() => {
  window.postMessage({action: 'solve_captcha', type: 'recaptcha'}, '*')
});
// 像常规情况一样监听 `oxylabs-captcha-start` 和 `oxylabs-captcha-end` 事件
// ...

Turnstile 对于 Turnstile CAPTCHA,需要不同的方法,因为必须在其出现在屏幕上之前拦截。为此,先启动 CAPTCHA 检测,然后执行会触发 CAPTCHA 的操作:

// 我们知道下一步操作可能会触发 Turnstile CAPTCHA
await page.evaluate(() => {
  window.postMessage({action: 'solve_captcha', type: 'turnstile'}, '*')
});
await page.click('#form-submit');
// 像常规情况一样监听 `oxylabs-captcha-start` 和 `oxylabs-captcha-end` 事件
// ...

最后更新于

这有帮助吗?