2017-07-20 21 views
1

私はこのウェブサイトから各国の「管理エリア」をダウンロードしようとしています:http://www.diva-gis.org/gdataPython 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

ああ何?はい、私は今それを見る。再度、感謝します! –

関連する問題