Python Selenium爬虫触发浏览器异常检测的问题排查与解决请求
Selenium被Godaddy网站检测的原因及解决办法
问题原因
- Selenium默认特征暴露:Chrome被Selenium驱动时,
navigator.webdriver属性会被设为true,网站可通过这个属性直接识别自动化工具。 - 代码参数顺序错误:你在创建
webdriver.Chrome实例之后才添加--headless、excludeSwitches等选项,这些配置根本没有生效,等于白加。 - 反爬触发点叠加:旧版本的User-Agent、无头模式的默认特征,再加上无痕模式的组合,让网站判定你的浏览器行为异常。
- Cookie操作时机错误:在访问URL前就删除所有Cookie,但此时浏览器还未加载目标站点,这个操作没有实际意义。
代码层面解决办法
核心思路是模拟真实浏览器的行为特征,同时消除Selenium的自动化标识,以下是修正后的完整代码:
from selenium import webdriver from time import sleep # 初始化Chrome配置选项,所有配置必须在创建driver前设置 options = webdriver.ChromeOptions() # 模拟真实浏览器的基础配置 options.add_argument("--incognito") # 无痕模式 options.add_argument("--disable-extensions") # 禁用扩展,匹配提示里的"禁用广告拦截器" options.add_argument("--enable-javascript") # 强制启用JS options.add_argument("--start-maximized") # 最大化窗口,避免小窗口触发异常检测 options.add_argument("--disable-blink-features=AutomationControlled") # 核心:禁用自动化控制标识 options.add_experimental_option('excludeSwitches', ['enable-logging', 'enable-automation']) # 去掉自动化提示 options.add_experimental_option('useAutomationExtension', False) # 禁用自动化扩展 # 无头模式配置(如果需要),添加更多参数模拟真实环境 # options.add_argument("--headless=new") # 新版无头模式,比旧版更难被检测 # options.add_argument("--window-size=1920,1080") # 设置真实分辨率 # 设置最新的Chrome User-Agent,避免旧版本触发检测 options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36') # 创建driver实例 driver = webdriver.Chrome(options=options) # 额外通过CDP命令消除webdriver痕迹 driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', { 'source': ''' Object.defineProperty(navigator, 'webdriver', { get: () => undefined }) ''' }) driver.implicitly_wait(10) # 合理设置隐式等待时间 # 访问目标URL driver.get('https://sso.godaddy.com/v1/account/create?realm=idp&path=%2Fcontact%2Fvalidate%3FcontactType%3DphoneMobile%26app%3Dsso%26path%3Dprofile%252Fedit%26profileUpdate%3DTrue%26userInteraction%3DPROFILE_UPDATE&app=sso&auth_reason=1&iframe=false') # 后续操作示例 # sleep(5) # driver.quit()
关键优化点说明
- 参数顺序修正:所有
options的配置必须在创建webdriver.Chrome实例前完成,否则配置不会生效。 - 消除自动化标识:通过
--disable-blink-features=AutomationControlled和CDP脚本,彻底隐藏navigator.webdriver属性。 - 真实浏览器模拟:启用JS、禁用扩展、设置最新User-Agent和窗口大小,让浏览器行为更接近真实用户。
- 无头模式优化:如果需要无头模式,使用新版的
--headless=new参数,它的行为更接近正常Chrome,比旧版--headless更难被检测。
内容的提问来源于stack exchange,提问作者hello world123
相关产品推荐
相关产品推荐

