2016-11-01 62 views
0

私はSeleniumを初めて使用していますが、JavaScriptに精通していません。 トップストーリーthis linkに掲載しました。したがって、私は見出しを含むそのコンテナだけをスクロールしなければならない。私はPythonでSeleniumを使用しています。私のコードはSeleniumで指定した無限のスクロール要素をPythonでスクロールする方法

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

driver = webdriver.Chrome('C:\\Program Files (x86)\\Google\\Chrome\\chromedriver.exe') 
driver.get("http://www.marketwatch.com/newsviewer") 
element = driver.find_element_by_tag_name('html') 
element.send_keys(Keys.END) 
time.sleep(8) 
element.send_keys(Keys.HOME) 

です。"WebDriverException: Message: unknown error: cannot focus element"というエラーが表示されます。私はページ内の無限のスクロール方法を読んでいましたが、ページ内の特定の無限のスクロールをスクロールすることは私にとって挑戦です。どんな助けもありがとう。

答えて

0

このようなものについてはどう:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 

は、コンテンツが正しくロードされていることを確認するために、十分な睡眠時間を含めることを忘れないでください。さらに、特定のテキストを探しているわけではないので、いつ停止するかを決める必要があります。おそらく、あなたが掻爬しているデータが変化しなくなったことを何らかの形でチェックしています。

これを言って、まったくスクロールする必要があることを確認してください。場合によっては、リスト上のデータ全体が画面上で部分的に見えなくなっても、直接利用することができます。スクロールは、AJAXページに追加データをロードする必要がある場合にのみ必要です。

+0

ありがとうEugene S.問題を解決するためにコードをどのように使用できますか?見出しを含むボックスからURLを取得する必要がありますが、その特定のものから開始する方法はわかりません。セレンとリクエストを組み合わせる必要があるのですか、それとも私の場合にのみ機能しますか? –

+0

@farshidbalan申し訳ありませんが、あなたが投稿したリンクを逃しました。 –

+0

@ Eugene、私は集中的にこの特定のウェブサイトからのリンクを掻き集めるための答えを探しました、Ajaxコードは他のウェブサイトと異なり、美味しいスープはそれのためには機能しません。私が本当に助けてくれることを願っています。 –

関連する問題