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

Python Selenium爬虫触发浏览器异常检测的问题排查与解决请求

Selenium被Godaddy网站检测的原因及解决办法

问题原因

  1. Selenium默认特征暴露:Chrome被Selenium驱动时,navigator.webdriver属性会被设为true,网站可通过这个属性直接识别自动化工具。
  2. 代码参数顺序错误:你在创建webdriver.Chrome实例之后才添加--headless、excludeSwitches等选项,这些配置根本没有生效,等于白加。
  3. 反爬触发点叠加:旧版本的User-Agent、无头模式的默认特征,再加上无痕模式的组合,让网站判定你的浏览器行为异常。
  4. 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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:15:33