2016-04-05 6 views
0

2つのドロップダウンメニューを循環するWebスクレーパーを作成しようとしていますが、セレンを使用して最初のドロップダウンボックスを見つけることができません。私は、ドロップダウンボックスですべての名前と年を繰り返し、すべてのページと値の表をcsvにエクスポートしました。 Webページがある:http://surge.srcc.lsu.edu/s1.html2つのドロップダウンメニューを持つSeleniumを使用したWebスクラビング

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

driver = webdriver.Firefox() 
driver.get("http://surge.srcc.lsu.edu/s1.html") 

element = driver.find_element_by_xpath('//select[@id="storm_name"]') 
all_options = element.find_elements_by_tag_name("option") 

私のエラーは、次のとおりです。

NoSuchElementException: Unable to locate element: 
{"method":"xpath","selector":"//select[@id=\"storm_name\"]"} 
+0

あなたの要素を見つけるために適切なウェブページをロードしていないからです。 [あなたのウェブページ](http://surge.srcc.lsu.edu/s1.html)には、[実際のコンテンツ](http://surge.srcc.lsu.edu/surge_map.html)を指すiFrameが含まれていますがセレン私は、iFramesをあらかじめロードすることはできないと信じています。このページを取得するとコードが機能するはずです。 –

+0

@Krazorあなたは答えとして投稿する必要があります – DaveBensonPhillips

+0

私はそれが1であるかどうかはわかりませんでした。今やろう。 –

答えて

0

だから、理由@HumphreyTriscuitの私は答えとしてこれを投稿します。そのような場合には答えとして記入してください。

そのをあなたの要素を見つけるために右のWebページをロードしていないので:だからそこに行く

Your webpageにはactual contentを指すiFrameが含まれていますが、セレニウムはiFramesをあらかじめ読み込むことはできません。このページを取得するとコードが機能するはずです。

また、わずかなボーナスもあります。xPathについて確信が持てない場合は、xPath Checker for Firefoxの使用を検討する必要があります。

+0

うん、私はちょうどこれに取り組んでいた、これを見つけた、私の新しいコードを再投稿した、私のエラーは今私はそれを実行する、ドロップダウンボックスの最後の要素を選択します。私はsleep()を追加しました。暗黙の待ち時間はうまくいきませんでした。 – Corncobpipe

+0

'ImplicitWait'はSeleniumの痛みであり、非常に悪いドキュメントを持っています。 'ExplicitWait'を' WebDriverWait'と一緒に使うべきですが、これは難しいかもしれませんが、ほとんどの時間を読むのは本当に醜いです。睡眠を使用することは全体的に悪い練習ですが、私は容認できる解決策と思います。 –

関連する問題