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

开启Headless模式时Undetected Chromedriver无响应问题解决求助

解决Selenium无头模式被检测导致无响应的问题

当使用Selenium无头模式访问目标网站时,网站常会通过浏览器特征识别出自动化程序,进而限制访问。以下是纯Selenium的解决方案,通过配置ChromeOptions模拟真实浏览器环境:

关键配置说明

需要给ChromeOptions添加以下参数,规避常见的无头模式检测:

  • 替换user-agent:无头模式默认UA包含HeadlessChrome标识,需换成普通Chrome的UA
  • 设置窗口大小:无头模式默认窗口尺寸过小,容易被识别
  • 禁用自动化相关的提示与特征:避免网站检测到Selenium的痕迹
  • 添加必要的兼容性参数:确保浏览器行为更接近真实用户

完整代码示例

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def main(url):
    options = Options()
    # 启用新版无头模式(更接近真实浏览器)
    options.add_argument("--headless=new")
    # 替换为正常Chrome的User-Agent(可根据自身浏览器版本调整)
    options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36")
    # 设置标准窗口大小
    options.add_argument("--window-size=1920,1080")
    # 禁用扩展与弹窗拦截
    options.add_argument("--disable-extensions")
    options.add_argument("--disable-popup-blocking")
    # 移除自动化控制提示与扩展
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    # 禁用自动化标识的blink特性
    options.add_argument("--disable-blink-features=AutomationControlled")
    # Linux环境可选参数(解决资源限制问题)
    options.add_argument("--no-sandbox")
    options.add_argument("--disable-dev-shm-usage")

    driver = webdriver.Chrome(options=options)
    # 动态移除webdriver标识
    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
    
    driver.get(url)
    try:
        WebDriverWait(driver, 10).until(
            EC.title_contains('Reservations')
        )
        print(driver.title)
    except Exception as e:
        print(type(e).__name__)
    finally:
        driver.quit()

if __name__ == "__main__":
    main('https://www.example.com/')

参数详解

  • --headless=new:Chrome新版无头模式,相比旧版--headless的行为更接近正常浏览器
  • user-agent:模拟真实用户的浏览器标识,避免被网站识别为无头模式
  • --disable-blink-features=AutomationControlled:移除浏览器中标记自动化控制的核心特征
  • 执行JS语句:动态修改navigator.webdriver属性,使其返回undefined,绕过常见的JavaScript检测

内容的提问来源于stack exchange,提问作者αԋɱҽԃ αмєяιcαη

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:50:24