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

如何通过Python Selenium+ChromeDriver自动下载图片(JPEG/PNG)与PDF文件?

解决ChromeDriver自动下载图片和PDF的问题

我完全懂你遇到的麻烦——Chrome默认会在标签页预览JPEG/PNG图片和PDF文件,导致Selenium脚本没法自动触发下载,只能处理那些Chrome没法预览的文件类型。别担心,只要调整Chrome的偏好设置,就能让这些文件直接下载而不是预览。

下面是具体的解决方案,直接修改你的ChromeDriver配置就行:

完整配置示例

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 1. 创建ChromeOptions对象
chrome_options = Options()

# 2. 设置下载相关的偏好配置
download_directory = "C:/Your/Custom/Download/Path"  # 替换成你想保存文件的实际路径
chrome_options.add_experimental_option("prefs", {
    # 指定下载目录
    "download.default_directory": download_directory,
    # 关闭下载确认弹窗
    "download.prompt_for_download": False,
    # 允许更新下载目录
    "download.directory_upgrade": True,
    # 强制PDF直接下载,不预览
    "plugins.always_open_pdf_externally": True,
    # 空字符串表示所有原本会被预览的文件类型都直接下载(包括图片、PDF等)
    "download.extensions_to_open": "",
    # 禁止弹出窗口
    "profile.default_content_settings.popups": 0,
    # 可选:禁用Chrome内置的PDF查看器,作为额外保障
    "plugins.plugins_disabled": ["Chrome PDF Viewer"]
})

# 3. 初始化ChromeDriver
driver = webdriver.Chrome(options=chrome_options)

关键参数解释

  • download.default_directory:一定要指定自定义下载路径,避免Chrome默认路径的权限或查找问题,Windows路径记得用正斜杠/或者双反斜杠\\。
  • plugins.always_open_pdf_externally:专门针对PDF文件,强制Chrome跳过预览环节,直接触发下载。
  • download.extensions_to_open:设置为空字符串是核心——Chrome原本会自动预览的文件类型(比如JPEG、PNG、PDF),现在都会直接下载,而不是在标签页打开。
  • download.prompt_for_download:关闭下载时的确认弹窗,确保脚本完全自动化,不需要人工干预。

注意事项

  1. 确保你的ChromeDriver版本和Chrome浏览器版本严格匹配,版本不兼容可能导致配置不生效。
  2. 如果指定的下载路径不存在,Chrome会自动创建它,但建议提前手动创建,避免潜在的权限问题。
  3. 测试时可以直接访问一个图片或PDF的链接,观察是否自动下载到指定目录,而不是打开预览标签页。

把这些配置整合到你现有的脚本里,就能解决图片和PDF无法自动下载的问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:14:02