首页 > 解决方案 > 如何使用 python 和 selenium webdriver 更改下载位置

问题描述

我已经编写了代码来为每个区域和地方的每个月下载文件。但是,由于我无法通过 selenium 更改文件的名称,我希望将每个地方的文件下载到单独的文件夹中。这是我的代码

        options = webdriver.ChromeOptions()
        options.add_argument('download.default_directory=/Users/name/Downloads/' + p)
        driver = webdriver.Chrome(chrome_options=options, executable_path="/Users/name/Downloads/chromedriver")
        driver.get("https://jpwebsite.harriscountytx.gov/PublicExtracts/search.jsp")

wherep是特定区域和地点的 ID。不幸的是,文件被下载到/Users/name/Downloads. 我已将 chromedriver 添加到PATH并刚刚使用

driver = webdriver.Chrome(chrome_options=options)

但这给了我这个:

[Errno 2] No such file or directory. 

我究竟做错了什么?谢谢!

标签: pythonseleniumwebdriverselenium-chromedriver

解决方案


您可以使用时间戳创建新目录。prompt_for_download还使用带有和directory_upgrade参数的 chrome 选项的首选项字典。试试下面的例子:

from selenium import webdriver
import time
timestr = time.strftime("%Y%m%d-%H%M%S")

options = webdriver.ChromeOptions()

prefs = {
"download.default_directory": r"C:\Users\XXXX\downdir\stamp"+timestr,
"download.prompt_for_download": False,
"download.directory_upgrade": True
}

options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://jpwebsite.harriscountytx.gov/PublicExtracts/search.jsp")

推荐阅读