2017-07-20 142 views
1

我試圖從這個網站下載每個國家的「行政區域」:http://www.diva-gis.org/gdata使用Python Selenium下載zip文件

我是使用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帖子,但我仍然不知道什麼是錯的。

回答

2

請檢查以下代碼是否有效。我用與css選擇器替換了您的查找鏈接。此外,更新text/csvapplication/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() 
+0

是的,非常感謝!任何想法爲什麼我的方法沒有工作,但? –

+0

@ J-Win - **下載**文本在鏈接內的** h2 **標籤下。這可能是你的代碼無法工作的原因。 – Beginner

+0

哦,到底是什麼?是的,我現在看到了。再次感謝! –