如何用Selenium避免被浏览器检测?遇Cloudflare人机验证难题
问题:Cloudflare人机验证绕过失败(WebDriver被识别)
我要访问的网站采用Cloudflare人机验证,之前仅设置User-Agent就能正常访问,但现在出现了验证屏障。我已经配置了100秒休眠时间手动完成验证,可网站还是能识别出WebDriver是机器人。当前的User-Agent配置代码如下:
options.add_argument('--user-agent="Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 640 XL LTE) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10166"')
解决建议
- 移除User-Agent参数中的多余引号:代码里的
--user-agent="xxx"格式错误,引号会被当作UA的一部分,导致UA异常,应该改成--user-agent=Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 640 XL LTE) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10166 - 隐藏WebDriver核心特征:添加以下参数屏蔽Selenium的识别标记:
options.add_argument('--disable-blink-features=AutomationControlled') options.add_experimental_option('excludeSwitches', ['enable-automation']) options.add_experimental_option('useAutomationExtension', False) - 模拟真实用户操作:除了固定休眠,添加随机滚动、点击等操作,避免机械性的访问行为
- 改用undetected-chromedriver库:这个库专门针对Cloudflare这类反爬机制做了优化,能自动隐藏WebDriver特征,比手动配置更稳定
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

