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

运行Selenium代码访问站点时如何避免触发Cloudflare拦截?

降低Cloudflare拦截概率的优化方案

一、Selenium指纹特征优化

这是解决拦截问题的基础调整,直接降低Cloudflare对自动化工具的识别概率:

  • 放弃无头模式运行,Selenium原生无头模式会携带大量可被检测的特征(比如navigator.webdriver标记为true、缺少正常浏览器的插件/用户行为指纹),切换为普通有头模式是成本最低的优化手段。
  • 补充Chrome启动参数,修改你现有的ChromeOptions配置:
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging', 'enable-automation'])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
# 可选:填入你本地日常使用的Chrome用户数据路径,复用已有高信任度浏览器指纹,效果更好
# options.add_argument(r'--user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data')
  • 启动浏览器后注入脚本抹去剩余自动化标识:
driver = webdriver.Chrome(options=options)
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
    'source': '''
        Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
        window.chrome = { runtime: {} };
        navigator.plugins = [1,2,3];
        navigator.languages = ['zh-CN', 'zh', 'en'];
    '''
})

二、替换高频刷新逻辑,从根源减少风控触发

你目前的拦截大多来自高频整页刷新,Cloudflare对同一会话短时间内的重复刷新行为判定阈值极低,调整方案如下:

  • 移除driver.refresh()调用,改为在页面内部通过JS定期检查按钮状态、触发数据更新,不需要整页重载:
# 原有刷新逻辑替换为以下代码
check_res = driver.execute_script('''
    const bookBtn = document.querySelector('#app-container > div > div:nth-child(2) > div > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div:nth-child(1) > div > button');
    if (bookBtn) {
        bookBtn.click();
        return 1;
    }
    // 触发页面内部预约数据异步刷新,不同站逻辑可调整,此处仅为示例
    window.dispatchEvent(new Event('focus'));
    return 0;
''')
if check_res == 1:
    print("page found")
    break
  • 调整轮询间隔,每个标签页的检查间隔不低于2秒,10个标签页可以改为3-5个,并行请求过多反而会触发流量异常判定。

三、其他细节优化

  • 检测到Cloudflare拦截页时不要立刻重试,加入8-10秒的等待,正常浏览器环境下Cloudflare的验证盾会自动通过,不需要额外操作。
  • 修正原有代码笔误:driver.close需要改为driver.close(),避免残留浏览器进程导致的环境异常。

内容的提问来源于stack exchange,提问作者Hinson Chan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:36:03