You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SeleniumBase无头模式下无法绕过Cloudflare CAPTCHA,如何无需PyAutoGUI解决

无头模式下绕过Cloudflare CAPTCHA的可行方案

1. 替换SeleniumBase的验证码处理方法

你当前调用的uc_gui_handle_captcha()依赖PyAutoGUI做GUI交互,无头模式下无法运行,换成SeleniumBase提供的纯浏览器端处理方法uc_handle_captcha()即可——它不需要PyAutoGUI,直接在浏览器上下文内处理验证码验证流程。

修改后的代码:

with SB(uc=True, headless2=True) as sb:
    for url in urls:
        sb.uc_open_with_reconnect(url, 5)
        sb.uc_handle_captcha()  # 替换为无GUI依赖的处理方法

2. 借助第三方验证码识别服务

如果自动处理失败,可以通过无头浏览器截取验证码区域,发送给第三方验证码识别API获取结果,再自动填充到页面。核心步骤:

  • 无头模式下定位验证码元素并截图
  • 将截图数据发送到识别API
  • 把返回的验证结果输入到验证码输入框并提交

注意:需确保截图区域准确,且API服务支持Cloudflare的验证码类型。

3. 强化浏览器指纹伪装

Cloudflare会检测浏览器环境是否为自动化工具,你可以在初始化SeleniumBase时添加更多参数模拟真实浏览器:

with SB(
    uc=True, 
    headless2=True, 
    user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    disable_browser_extensions=False
) as sb:
    sb.uc_open_with_reconnect(url, 5)
    sb.uc_handle_captcha()

还可以添加自定义JS脚本随机化WebGL、Canvas指纹,进一步降低被检测的概率。

4. 改用Playwright工具

Playwright对无头模式的支持更完善,反检测能力更强,结合其内置的环境伪装或第三方服务能更高效绕过Cloudflare。示例代码:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    context = browser.new_context(
        user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
        viewport={"width": 1920, "height": 1080}
    )
    page = context.new_page()
    page.goto(url)
    # 等待Cloudflare验证流程完成
    page.wait_for_load_state("networkidle")
    # 后续页面处理逻辑
    browser.close()

若遇到验证码,可通过page.screenshot()截取验证码区域后,调用识别API完成验证。

内容的提问来源于stack exchange,提问作者Hafiz pambudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:56:04