6

Webサービスでは利用できないため、Webサイトから一部のデータをスクリーンスクレイピングする必要があります。以前にこれを行う必要があったときは、ApacheのHTTPクライアントライブラリを使用してJavaコードを自分で作成し、関連するHTTP呼び出しを行ってデータをダウンロードしました。Charles Webプロキシを使用して対応するHTTP呼び出しをログに記録しながら、ブラウザーの関連する画面をクリックして、必要な関連する呼び出しを見つけました。

ご想像のとおり、これはかなり退屈なプロセスであり、ブラウザセッションに対応するJavaコードを実際に生成できるツールがあるかどうか疑問に思っています。生成されたコードは手動で記述されたコードほどきれいではないと思いますが、後でいつでも片付けることができました。そのようなツールが存在するかどうか誰かが知っていますか?セレンは私が知っている可能性の1つですが、この正確なユースケースをサポートしているかどうかはわかりません。

ありがとう、ドン

4

5 に答える 5

4

また、HtmlUnit の機能は非常に強力であるため、+1 を追加します。「実際のブラウザーがページをスクレイピングして使用しているかのように」動作が必要な場合は、間違いなく利用可能な最良のオプションです。HtmlUnit は (必要に応じて) ページ内の Javascript を実行します。

現在、すべての主要な Javascript ライブラリを完全にサポートしており、それらを使用して JS コードを実行します。これに対応して、テスト内でプログラムによってページ内の Javascript オブジェクトへのハンドルを取得できます。

ただし、実行しようとしている範囲が少なく、HTML 要素の一部を読むという線に沿っており、Javascript をあまり気にしない場合は、NekoHTMLを使用するだけで十分です。XPath ではなくプログラムによるツリーへのアクセスを提供するJDomに似ています。ページを取得するには、おそらく Apache のHttpClientを使用する必要があります。

于 2009-01-09T16:38:00.137 に答える
3

manageability.orgブログには、Java用の多数のWebページスクレイピングツールを一覧表示するエントリがあります。ただし、現時点では到達できないようですが、ここでGoogleのキャッシュにテキストのみの表現が見つかりました。

于 2009-01-08T14:51:11.467 に答える
2

HtmlUnitをご覧ください。これは Web サイトのテスト用に設計されていますが、スクリーン スクレイピングや複数ページのナビゲーションに最適です。Cookie やその他のセッション関連のものを処理します。

于 2009-01-08T04:27:46.390 に答える
2

個人的には、HtmlUnit と Selenium をスクリーン スクレイピングの 2 つのお気に入りのツールとして使用したいと思います。

于 2010-12-07T08:36:20.837 に答える
0

The Grinderと呼ばれるツールを使用すると、プロキシ経由でサイトへのセッションをスクリプト化できます。出力は Python (Jython で実行可能) です。

于 2009-01-08T15:29:58.457 に答える