ChromeDriver突然变慢(Python+Selenium爬虫场景)
问题分析与解决建议
可能的核心原因
- Chrome浏览器自动更新引发的兼容/性能问题:即便未主动更新ChromeDriver,Chrome浏览器本身可能自动升级到新版本,初期版本可能存在性能bug,或是新特性增加了资源消耗,进而影响驱动运行效率。
- 网站反爬策略升级(非封禁式限速):目标网站可能新增了自动化工具识别逻辑,未直接封禁,但通过限制JS执行、资源加载速度的方式降低爬虫效率,手动浏览器因无自动化特征不受影响。
- ChromeDriver默认配置变更:新版本ChromeDriver(包括113版本)可能默认启用了性能日志收集、调试追踪等消耗资源的功能,导致整体运行变慢。
具体解决步骤
严格匹配Chrome与ChromeDriver版本
打开Chrome浏览器输入chrome://version/查看完整版本号(如113.0.5672.92),下载完全一致版本的ChromeDriver,确保二者版本完全同步,小版本差异也可能引发性能问题。优化ChromeDriver启动参数
在初始化ChromeDriver时添加以下参数,关闭不必要的资源消耗功能:from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 解决内存分配类问题 chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') # 禁用后台性能节流 chrome_options.add_argument('--disable-background-timer-throttling') chrome_options.add_argument('--disable-backgrounding-occluded-windows') chrome_options.add_argument('--disable-renderer-backgrounding') # 关闭不必要的扩展与GPU加速 chrome_options.add_argument('--disable-extensions') chrome_options.add_argument('--disable-gpu') # 新无头模式(更接近手动浏览器行为) chrome_options.add_argument('--headless=new') # 禁用性能日志收集 chrome_options.add_argument('--disable-features=PerformanceLogging') driver = webdriver.Chrome(options=chrome_options)隐藏自动化工具特征
通过CDP命令修改浏览器属性,避免被网站识别为爬虫:driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', { 'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})' })清理残留进程与检查资源占用
打开任务管理器结束所有Chrome相关进程,避免残留进程导致资源泄漏;同时确认是否有其他进程抢占CPU、内存资源,影响爬虫运行。
内容的提问来源于stack exchange,提问作者snn
相关产品推荐
相关产品推荐

