Rename heruntergeladene Dateien Selen
Ich verwende Selen, um Dateien im CSV-Format von dieser Seite automatisch herunterzuladen:
https: //catalog.data.gov/dataset? tags = crime
Dies ist der Code, den ich verwende:
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()
Hier ist der Download-Ordner eingestellt:
profile.set_preference("browser.download.dir", '/home/luis/Desktop/data/')
Wie kann ich den Namen auswählen, unter dem die Datei gespeichert wird? Kann der Name sein, der zum Zeitpunkt des Downloads definiert wurde?
Ich meinte so etwas wie:
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)