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

如何使用Selenium绕过Cloudflare机器人检测?

绕过Cloudflare机器人检测(非hCaptcha)的可行方案
  • 修改navigator.webdriver属性
    Cloudflare核心检测点之一就是这个属性,Selenium默认会把它设为true,直接暴露自动化身份。用CDP命令在页面加载前修改这个属性:

    driver.executeCdpCommand("Page.addScriptToEvaluateOnNewDocument", ImmutableMap.of(
        "source", "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
    ));
    

    注意要在打开目标页面之前执行这段代码,初始化driver后立刻运行即可。

  • 补充浏览器模拟参数
    现有参数不够全面,加上这些更贴近真实用户的启动参数:

    options.addArguments("--start-maximized"); // 最大化窗口,模拟正常用户操作
    options.addArguments("--disable-extensions"); // 禁用扩展,减少异常特征
    options.addArguments("--disable-dev-shm-usage"); // 解决资源限制问题,全平台适用
    options.addArguments("--no-sandbox"); // 禁用沙箱模式,避免检测
    options.addArguments("--disable-gpu"); // 禁用GPU加速,统一环境特征
    options.addArguments("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.81 Safari/537.36"); // 用你Chrome的真实UA,避免默认UA暴露
    

    UA可以直接在Chrome地址栏输入navigator.userAgent复制准确值。

  • 模拟人类操作行为
    不要极速操作页面,添加随机延迟,模拟滚动、点击等真实动作:

    // 随机等待1-3秒,避免操作过快
    Thread.sleep((long) (Math.random() * 2000 + 1000));
    // 模拟滚动页面到底部
    ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");
    

    操作间隔尽量随机,不要固定时长。

  • 调整ChromeDriver实验选项(适配104版本)
    针对Chrome 104,扩展excludeSwitches的参数,同时保持自动化扩展禁用:

    options.setExperimentalOption("excludeSwitches", Arrays.asList("enable-automation", "disable-popup-blocking"));
    options.setExperimentalOption("useAutomationExtension", false);
    
  • 重命名ChromeDriver(可选)
    部分检测会识别ChromeDriver的默认文件名或签名,把chromedriver.exe重命名为chrome.exe,然后修改路径配置:

    System.setProperty("webdriver.chrome.driver", "drivers/chrome.exe");
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:57:08