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

仅能在非无头模式下打开站点?Selenium无头模式运行异常求助

仅能在非无头模式下打开站点?Selenium无头模式运行异常求助

嘿,我之前也踩过一模一样的坑!无头模式下的Chrome和你手动打开的浏览器在默认配置、特征识别上差得还真不少,网站很容易把它当成“非人类访问”给限制了。给你几个亲测有效的解决办法,一步步来试试:

  • 伪装正常浏览器的User-Agent
    无头模式下Chrome的默认UA会带HeadlessChrome的标识,很多网站靠这个判断是不是自动化工具。你可以手动设置成和正常Chrome一致的UA:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    # 用新版无头模式,行为更接近正常浏览器(Chrome 112+支持)
    options.add_argument("--headless=new")
    # 可在浏览器地址栏输入chrome://version/查看自己当前的UA,替换掉下面的内容
    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")
    driver = webdriver.Chrome(options=options)
    
  • 隐藏Selenium的自动化特征
    Selenium默认会给浏览器加上一些自动化相关标记,网站能通过JS检测到。加上这些参数就能把它们藏起来:

    options.add_argument("--disable-blink-features=AutomationControlled")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    
  • 设置正常的窗口尺寸
    无头模式默认窗口尺寸特别小,有些网站会根据这个判断是异常访问,直接返回错误或空白页。设置一个常规桌面窗口大小:

    options.add_argument("--window-size=1920,1080")
    
  • (可选)加载本地浏览器配置
    如果网站需要登录状态或特定浏览器环境,你可以让无头模式加载你平时用的Chrome用户数据(注意要先关闭正在运行的Chrome,不然会冲突):

    # 替换成你自己的Chrome用户数据路径,Windows一般是这个格式
    options.add_argument(r"user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data")
    options.add_argument("--profile-directory=Default")
    

把这些参数组合起来,你的代码访问行为就和正常浏览器差不多了。如果还是不行,那可能网站用了更严格的指纹检测,不过先把上面的基础配置试完,大部分情况都能解决!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 13:18:03