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

Selenium Python Chrome运行极慢,Cookie或缓存是元凶吗?

Selenium Chrome的Cookie与缓存机制及优化方案

核心问题解答

  • 默认行为:Selenium启动Chrome时,默认会创建全新的临时用户数据目录,不会复用之前的Cookie、缓存或浏览器配置。每次会话访问页面时,所有资源(脚本、图片、样式等)都会重新加载,这正是你爬取大量相似个人资料页面时速度慢的原因之一。
  • 你的需求(会话内复用、关闭后销毁)是可以实现的,关键在于自定义用户数据目录。

具体实现方法

通过给ChromeOptions添加--user-data-dir参数,指定一个本地目录来存储会话的Cookie和缓存。同一个driver会话中,浏览器会自动复用已加载的资源;会话结束后,删除这个目录就能彻底销毁数据。

修改你的代码示例

在配置options的部分添加以下代码:

import tempfile
import shutil

# 创建临时目录用于存储用户数据
user_data_dir = tempfile.mkdtemp()
options.add_argument(f"--user-data-dir={user_data_dir}")

在关闭driver后,执行目录删除操作:

driver.quit()
# 销毁用户数据目录
shutil.rmtree(user_data_dir)

注意事项

  • 不要让多个Chrome实例共用同一个用户数据目录,会导致会话冲突、数据混乱。
  • 若需要精细控制缓存,可通过prefs配置调整缓存上限:
    prefs = {
        'download.default_directory': dFolder,
        'disk-cache-size': 1073741824  # 设置缓存上限为1GB,单位字节
    }
    options.add_experimental_option('prefs', prefs)
    

额外提速建议

结合你已用的无头模式,可再加这些参数进一步优化:

  • --disable-images:无需爬取图片时直接禁用加载
  • --disable-plugins:禁用不必要的插件
  • --disable-extensions-except={blocker}:仅保留你需要的广告拦截扩展,避免冗余扩展影响性能(需替换成你的扩展路径)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:06:41