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

Selenium WebDriver加载URL速度极慢,寻求优化建议(2022款Mac)

Selenium在Mac上启动&加载URL过慢的优化方案

你的核心耗时点分为两部分:ChromeDriverManager().install()每次运行的驱动检查下载,以及浏览器启动和页面加载的冗余开销。以下是针对性优化方案:

1. 消除ChromeDriver动态安装的耗时

每次调用ChromeDriverManager().install()都会检查并下载驱动,直接预安装驱动到本地即可节省这5秒:

  • 手动下载与本地Chrome版本匹配的ChromeDriver,放到系统PATH目录(如/usr/local/bin/)
  • 修改代码跳过动态安装,直接指定本地驱动路径:
    service = ChromeService(executable_path='/usr/local/bin/chromedriver')
    

2. 组合更有效的Chrome启动参数

整合优化参数,针对Mac环境添加更高效的配置:

options = webdriver.ChromeOptions()
# 基础性能优化
options.add_argument('--disable-gpu')
options.add_argument('--disable-extensions')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--headless=new')  # 新版无头模式,性能优于旧版headless
options.add_argument('--blink-settings=imagesEnabled=false')  # 直接禁用图片加载
# Mac特定优化
options.add_argument('--disable-background-networking')  # 关闭后台网络请求
options.add_argument('--disable-default-apps')  # 禁用默认应用加载
options.add_argument('--disable-features=VizDisplayCompositor')  # 禁用渲染合成器
options.add_argument('--log-level=3')  # 仅输出致命错误,减少日志开销
options.add_argument('--silent')  # 静默启动,避免不必要的输出

3. 修改页面加载策略

默认的normal策略会等待页面完全加载,改用eager只等待DOM加载完成,或none直接跳过等待(需自行判断元素状态):

options.page_load_strategy = 'eager'

4. 系统层面检查

  • 确保Chrome为最新版本,避免与Mac系统(Ventura/Sonoma)的兼容性问题
  • 再次确认系统设置-网络-高级-代理中,所有自动代理选项已关闭
  • 临时关闭杀毒软件/防火墙,排查是否存在网络拦截

优化后完整代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
import time

start_time = time.time()
url = 'https://www.google.com'

# 配置Chrome优化选项
options = webdriver.ChromeOptions()
options.add_argument('--disable-gpu')
options.add_argument('--disable-extensions')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--headless=new')
options.add_argument('--blink-settings=imagesEnabled=false')
options.add_argument('--disable-background-networking')
options.add_argument('--disable-default-apps')
options.add_argument('--disable-features=VizDisplayCompositor')
options.add_argument('--log-level=3')
options.add_argument('--silent')
options.page_load_strategy = 'eager'

# 使用本地预安装的ChromeDriver
service = ChromeService(executable_path='/usr/local/bin/chromedriver')
driver = webdriver.Chrome(service=service, options=options)

driver.get(url)
print("hi")
print("--- %s seconds ---" % (time.time() - start_time))

driver.quit()  # 关闭驱动,避免残留进程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:30:58