2016-07-19 79 views
1

我使用硒在此頁面上自動下載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) 

回答

3

您不必在下載文件通過硒命名控制。

你可以做的是使用目錄觀察者/觀察者來檢測文件何時被下載,然後相應地重命名它。請參閱this answer,其中包含更多後續細節。