我正在使用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)
您无法控制通过selenium命名的下载文件 。
您可以使用目录观察者/观察者来检测文件何时下载,然后相应地重命名。请参阅此答案,其中包含更多后续细节。