29

Javascript をサポートして Web サイトのナビゲーションを自動化し、ページから HTML を収集できる優れたテスト スイートまたはツール セットはありますか?

もちろん、BeautifulSoup でそのまま HTML をスクレイピングすることもできます。しかし、これは Javascript を必要とするサイトには役に立ちません。:)

4

9 に答える 9

26

SeleniumまたはWatirを使用して、実際のブラウザーを駆動できます。

JavaScript ベースのヘッドレス ブラウザもあります。

  • PhantomJSは、ヘッドレス Webkit ブラウザーです。
    • pjscrapeは、PhantomJS と jQuery に基づくスクレイピング フレームワークです。
    • CasperJSは、PhantomJS に基づいたナビゲーション スクリプトおよびテスト ユーティリティです。スクレイピングする URL を指定する以上のことを行う必要がある場合に使用します。
  • Node.jsゾンビ

個人的には、Selenium に最も精通しています。Selenium は、多くの言語での自動化スクリプトの作成をサポートしており、テストケースの作成と実行に使用できる Firefox 用の優れたSelenium IDE拡張機能など、より成熟したツールを備えています。テスト スクリプトを多くの言語にエクスポートできます。

于 2008-09-24T03:27:21.320 に答える
6

HtmlUnitを使用することも可能です。

HtmlUnit は「Java プログラム用の GUI レス ブラウザ」です。HTML ドキュメントをモデル化し、「通常の」ブラウザで行うのと同じように、ページの呼び出し、フォームへの入力、リンクのクリックなどを可能にする API を提供します。

かなり優れた JavaScript サポート (常に改善されています) があり、非常に複雑な AJAX ライブラリでも動作し、使用する構成に応じて Firefox または Internet Explorer のいずれかをシミュレートできます。

これは通常、テスト目的または Web サイトから情報を取得するために使用されます。

于 2009-07-10T02:52:39.297 に答える
4

Selenium は htmlunit をラップするようになったため、ブラウザーを起動する必要がなくなりました。新しい WebDriver API も非常に使いやすいです。最初の例では htmlunit ドライバーを使用しています

于 2010-12-30T08:38:51.337 に答える
2

そこにある任意のサイトで機能するソリューションをコーディングすることは非常に困難です。各ナビゲーション メニューの実装は非常にユニークです。私はスクレイパーと多くの仕事をしてきました。あなたがターゲットにしたいサイトを知っていれば、ここに私がどのようにアプローチするかを示します.

通常、ナビゲーション メニューで使用される特定の JavaScript を分析する場合、正規表現を使用して、ナビゲーション メニューの構築に使用される変数のセット全体を引き出すのは非常に簡単です。Beautiful Soup を使用したことはありませんが、あなたの説明から、HTML 要素でのみ機能し、script タグ内では機能しないように思えます。

それでも問題が解決しない場合、またはフォーム POST や ajax をエミュレートする必要がある場合は、Firefox を入手してLiveHttpHeadersプラグインをインストールしてください。このプラグインを使用すると、サイトを手動で閲覧し、ナビゲートされている URL と、手動の閲覧中に渡される Cookie をキャプチャできます。これは、ターゲット Web サーバーから有効な応答を取得するために、スクレイパーボットが要求を送信するために必要なものです。これにより、行われている ajax 呼び出しもキャプチャされます。多くの場合、目的の応答を得るには、同じ ajax 呼び出しをスクレイパーに実装する必要があります。

于 2008-09-24T03:19:24.380 に答える
2

Mozendaも素晴らしいツールです。

于 2009-10-27T23:33:06.433 に答える
2

Scrape.itからオープン ソースのスクリーン スクレーパーを試すことができます。

更新: 2013 年 4 月 4 日現在、Scrape.it Screen Scraper はgithubでオープン ソースです。

于 2011-12-17T03:06:53.283 に答える
1

JavaScript の空想は、ブラウザのページの内部 DOM モデルをいじり、生の HTML には何もしないことに注意してください。

于 2008-09-24T03:03:51.330 に答える
1

@insin Watir は IE だけではありません。

https://stackoverflow.com/questions/81566#83387

于 2008-10-05T14:02:23.463 に答える
1

私はこれにSeleniumを使用してきましたが、うまく機能することがわかりました。Selenium はブラウザで動作し、Firefox、Webkit、および IE で動作します。 http://selenium.openqa.org/

于 2008-09-24T03:27:50.383 に答える