1

ヘッドレス Selenium を使用して画像を含む Web サイトをスクレイピングしようとしています。最初に、Web サイトには 50 個の画像が入力されます。下にスクロールすると、さらに多くの画像が読み込まれます。

Windows 7 x64
python 2.7
の最近のセレンのインストール

[1] 非ヘッドレス Selenium
を使用して次のように Web サイトに移動します。

from selenium import webdriver
browser = webdriver.Firefox()
browser.get(url)
browser.execute_script('window.scrollBy(0, 10000)')
browser.page_source

これはうまくいきます(誰かがより良い提案を持っているなら、私に知らせてください). 最後に到達するまでscrollBy()
を続行し、ソース ページをプルできます。

[2] HTMLUNITによるヘッドレス

from selenium import webdriver
driver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.HTMLUNIT)
driver.get(url)

このヘッドレス環境ではscrollBy()を使用できません。
この種のページをスクレイピングする方法について何か提案はありますか? ありがとう

4

3 に答える 3

0

java同じ方法を試したところ、シミュレートへの接続中にセレンがクラッシュしたというエラーメッセージが表示されjavascriptました。

スクリプトを execute_script メソッドに書き込んだところ、コードはうまく機能しました。

セレンとJavaサーバー部分の間の通信が正しく構成されていないと思います。

javascriptwith を有効にすることHTMLUNITDRIVERWITHJSは可能で迅速です;)

于 2013-09-06T06:23:21.810 に答える
0

HtmlUnit ドライバーを使用する場合は、JavaScript を明示的に有効にする必要があります。

driver.setJavascriptEnabled(true);

[http://code.google.com/p/selenium/wiki/HtmlUnitDriver](ドキュメント) によると、デフォルトで IE の JavaScript 処理をエミュレートする必要があります。

于 2012-06-21T16:31:44.390 に答える
0

1 つのオプションは、JavaScript を調べて、次に何をロードするかを計算する方法を確認することです。次に、代わりにそのロジックをスクレイピング クライアントに実装します。それができたら、Perl の WWW::Mechanize のような高速なスクレイピング ツールを使用できます。

于 2012-06-20T22:00:10.027 に答える