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

特定网站无法在Headless模式运行?Selenium代码适配求助

解决无头模式访问目标网站失败的修改方案

问题根源

目标网站通过检测浏览器特征识别出了无头模式,进而限制了访问。无头Chrome的默认配置和正常浏览器存在多处差异,比如User-Agent标识、默认窗口尺寸等,这些差异很容易被网站的反爬机制捕捉。

需要补充的配置项

给ChromeOptions添加以下配置,模拟正常浏览器的运行环境:

  • 设置与正常Chrome一致的User-Agent,避免被识别为无头模式
  • 指定标准窗口尺寸,无头模式默认窗口过小,易触发检测
  • 禁用暴露无头模式的特殊参数
  • 明确启用JavaScript(虽默认开启,但显式指定更稳妥)

修改后的完整代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()

options.headless = True
# 模拟正常Chrome的User-Agent标识
options.add_argument("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.add_argument("window-size=1920,1080")
# 禁用暴露自动化控制的特征
options.add_argument("--disable-blink-features=AutomationControlled")
# 关闭开发者模式提示
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
# 确保JavaScript功能启用
options.add_argument("--enable-javascript")

driver = webdriver.Chrome(options=options)

driver.get('https://cases.ra.kroll.com/Clovis/Home-DocketInfo')

print(driver.title)

driver.quit()  # 用quit替代close,彻底关闭浏览器进程

额外提示

如果上述配置仍无法访问,可尝试添加--no-sandbox和--disable-dev-shm-usage参数,解决部分环境下无头模式的运行限制;若网站有更复杂的指纹检测(如WebGL、字体特征),则需要进一步模拟对应细节,但上述配置已覆盖绝大多数常见的无头模式检测场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:10:39