重命名下载的文件selenium

时间:2016-07-19 13:26:18

标签: python selenium web-scraping

我正在使用selenium从此页面自动下载csv格式的文件:

https://catalog.data.gov/dataset?tags=crime

这是我正在使用的代码:

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", '/home/luis/Desktop/data/')
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")

driver = webdriver.Firefox(firefox_profile=profile)
driver.get(url)
time.sleep(2)
download_button = driver.find_element_by_xpath('//*[@id="content"]/div[2]/div[2]/section[1]/div[2]/ul/li[14]/div/ul/li[1]/a')
download_button.click()

此处设置了下载文件夹:

profile.set_preference("browser.download.dir", '/home/luis/Desktop/data/')

如何选择保存文件的名称? 可以是下载时定义的名称吗?

我的意思是这样的:

For name in names:
    download_button = driver.find_element_by_xpath('//*[@id="content"]/div[2]/div[2]/section[1]/div[2]/ul/li[14]/div/ul/li[{}]/a'.format(name))
    download_button.click()
    save_file_as(name)

1 个答案:

答案 0 :(得分:7)

您无法控制通过selenium命名的下载文件

您可以使用目录观察器/观察器来检测文件的下载时间,然后相应地重命名。请参阅this answer,其中包含更多后续详细信息。