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

使用C# Undetected Chrome Driver遭遇Cloudflare验证码拦截求助

解决方案:绕过Cloudflare拦截并修改isAutomatedWithCDP值

核心问题定位

你提到的isAutomatedWithCDP为true是Chrome DevTools Protocol(CDP)暴露的自动化标识,这是Cloudflare检测机器人的关键特征之一,即便使用UndetectedChromeDriver,部分CDP相关标识仍可能残留。

具体修复步骤

1. 通过CDP命令直接修改标识

初始化UndetectedChromeDriver后,执行CDP命令强制将isAutomatedWithCDP设为false,同时隐藏webdriver标识:

var driver = new UndetectedChromeDriver(options);
// 执行CDP脚本覆盖自动化标识
driver.ExecuteCdpCommand("Runtime.evaluate", new Dictionary<string, object>
{
    {"expression", @"
        Object.defineProperty(navigator, 'webdriver', {get: () => undefined});
        Object.defineProperty(window, 'isAutomatedWithCDP', {get: () => false});
    "}
});

2. 优化ChromeOptions配置

补充以下关键参数,进一步消除自动化特征:

var options = new ChromeOptions();
// 禁用自动化控制特征
options.AddArgument("--disable-blink-features=AutomationControlled");
// 禁用扩展与信息栏
options.AddArgument("--disable-extensions");
options.AddArgument("--disable-infobars");
// 模拟真实用户代理(替换为你常用浏览器的UA)
options.AddArgument("--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");
// 启用隐身模式并禁用日志
options.AddArgument("--incognito");
options.AddArgument("--log-level=3");
options.AddArgument("--disable-logging");

3. 模拟人类交互行为

Cloudflare会检测页面交互的自然度,添加随机延迟和简单操作:

// 页面加载后随机延迟2-5秒
Thread.Sleep(new Random().Next(2000, 5000));
// 模拟鼠标随机移动与点击
var actions = new Actions(driver);
actions.MoveByOffset(new Random().Next(0, 100), new Random().Next(0, 100)).Perform();
actions.Click().Perform();

4. 验证修复效果

运行脚本后重新访问检测站点,确认isAutomatedWithCDP已变为false,再测试目标网站的Cloudflare验证是否通过。

内容的提问来源于stack exchange,提问作者Anıl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 08:19:56