如何使用Python结合Selenium设置脚本本地的下载目录?
Selenium下载路径配置问题
问题说明
我想要自动化每日需执行的文件下载及处理流程,目前Selenium下载的文件默认保存至系统下载文件夹,希望改为Python脚本同目录下的data文件夹。已确保cmd实例本地运行,现提供Browser类的__init__函数代码:
def __init__ (self, driver: str): self.service = Service(driver) options = webdriver.ChromeOptions() prefs = {"download.default_directory":".\\data\\"} options.add_experimental_option("prefs", prefs) self.browser = webdriver.Chrome(service=self.service, options=options)
优化方案
- 先确保
data文件夹存在:脚本启动时自动创建目标文件夹,避免因路径不存在导致配置失效,代码示例:import os # 检查并创建data文件夹 if not os.path.exists("./data"): os.makedirs("./data") - 改用绝对路径替代相对路径:避免因工作目录变化导致路径识别错误,代码示例:
from pathlib import Path # 获取脚本所在目录的绝对路径 script_dir = Path(__file__).parent.resolve() download_dir = script_dir / "data" prefs = {"download.default_directory": str(download_dir)} - 补充Chrome自动下载配置:关闭下载弹窗、禁用PDF预览,确保文件直接保存到目标文件夹,代码示例:
options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) # 禁用浏览器PDF预览,强制文件下载 prefs["plugins.always_open_pdf_externally"] = True prefs["download.prompt_for_download"] = False
注意事项
- Windows系统中路径分隔符可使用
/或双反斜杠\\,但绝对路径的可靠性更高 - 需保证ChromeDriver版本与本地Chrome浏览器版本匹配,否则配置可能无法生效
内容的提问来源于stack exchange,提问作者Mark Gyomory
相关产品推荐
相关产品推荐

