我试图下载每个国家"行政区域"来自这个网站: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帖子,但我仍然不知道错误。
答案 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()