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

Python火狐爬虫配置Firefox自动下载PDF到指定路径设置失效问题

问题根因

缺少禁用Firefox内置PDF预览的核心配置,且高版本Selenium中同时传入options和firefox_profile会出现配置覆盖,导致除下载路径外的其他偏好不生效。

修正方案

1. 核心必加配置

添加pdfjs.disabled参数禁用火狐自带的PDF预览器,否则浏览器会优先打开PDF预览页,不会触发下载保存流程,你配置的保存规则自然无法生效。

2. 推荐统一用FirefoxOptions管理配置(适配Selenium v4+)

旧版FirefoxProfile传参方式已被弃用,把所有偏好配置统一写入Options对象即可避免冲突,修正后的代码如下:

from selenium.webdriver.firefox.options import Options
import os

download_Path = items.get(key = 'dir') # 从XML获取下载路径
# 转换为绝对路径避免识别异常
abs_download_path = os.path.abspath(download_Path)
if not os.path.exists(abs_download_path):
    os.makedirs(abs_download_path)

options = Options()
# 基础下载配置
options.set_preference("browser.download.folderList", 2)
options.set_preference("browser.download.dir", abs_download_path)
options.set_preference("browser.download.manager.showWhenStarting", False)
# 禁用下载弹窗询问
options.set_preference("browser.helperApps.alwaysAsk.force", False)
options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
# 核心配置:禁用内置PDF预览
options.set_preference("pdfjs.disabled", True)
# 禁用新版下载面板干扰
options.set_preference("browser.download.panel.shown", False)

# 不需要单独声明FirefoxProfile,直接传options即可
driver = webdriver.Firefox(executable_path = DriverPath, options = options)

3. 额外注意事项

  • 移除冗余的失效配置:browser.helperApps.neverAsk.openFile、webdriver_enable_native_events这类在新版火狐中已不生效的参数,避免干扰正常配置
  • 如果是Linux/macOS环境,要保证下载路径有写入权限,否则也会触发保存弹窗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:15:04