开启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αη
相关产品推荐
相关产品推荐

