使用Python Selenium下载zip文件

时间:2017-07-20 11:00:00

标签: python selenium

我试图下载每个国家"行政区域"来自这个网站:http://www.diva-gis.org/gdata

我是使用Python Selenium软件包的新手,但我相当确定下面的代码至少应该下载阿富汗的数据。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', '/tmp')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv')

driver = webdriver.Firefox(profile)
driver.get("http://www.diva-gis.org/gdata")
driver.find_element_by_name('OK').click()
driver.find_element_by_link_text('Download').click()

我可以使用此方法在同一页面上打开其他链接,但我无法打开"下载"由于某种原因链接。运行此代码后,不会显示任何错误消息。我确实看过类似的SO帖子,但我仍然不知道错误。

1 个答案:

答案 0 :(得分:2)

请检查以下代码是否有效。我已使用 css选择器替换了您的查找链接文字。此外,使用text/csv更新了application/zip

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', '/tmp')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')


driver = webdriver.Firefox(profile)
driver.get("http://www.diva-gis.org/gdata")
driver.find_element_by_name('OK').click()
driver.find_element_by_css_selector("#node-39 > div > div > div > div > a > h2").click()
相关问题