73

JavaベースのAPIをスクレイピングする優れたWebを見つけることができません。私がスクレイプする必要があるサイトは、APIも提供していません。いくつかを使用してすべてのWebページを反復処理しpageID、DOMツリーでHTMLタイトル/その他のものを抽出したいと思います。

ウェブスクレイピング以外の方法はありますか?

4

10 に答える 10

99

スープ

タイトルの抽出は難しくなく、多くのオプションがあります。スタック オーバーフローで「Java HTML parser」を検索してください。それらの 1 つがJsoupです。

ページ構造がわかっている場合は、DOM を使用してページをナビゲートできます 。http://jsoup.org/cookbook/extracting-data/dom-navigationを参照してください。

これは優れたライブラリであり、以前のプロジェクトで使用しました。

于 2010-07-08T09:44:11.720 に答える
22

最善の策は、SeleniumWebDriverを使用することです。

  1. コーダーに視覚的なフィードバックを提供します(スクレイピングの動作を確認し、停止する場所を確認してください)

  2. 使用するブラウザを直接制御するため、正確で一貫性があります。

  3. 遅い。HtmlUnitのようにWebページにヒットしませんが、あまり速くヒットしたくない場合があります。

    Htmlunitは高速ですが、JavascriptとAJAXの処理にはひどいものです。

于 2010-09-23T19:45:12.687 に答える
14

HTMLUnitは Web スクレイピングに使用でき、ページの呼び出し、フォームの入力と送信をサポートします。私は自分のプロジェクトでこれを使用しました。Webスクレイピングに適したJavaライブラリです。 詳しくはこちらをお読みください

于 2011-07-21T12:22:16.937 に答える
4

Java の mechanize はこれに適しています。Wadjy Essam が述べたように、HMLT には JSoup を使用します。mechanize は、ナビゲーション、フォームの送信、およびページのスクレイピングをサポートする段階的な HTTP/HTML クライアントです。

http://gistlabs.com/software/mechanize-for-Java/ (および GitHub はこちらhttps://github.com/GistLabs/mechanize )

于 2012-09-17T21:31:21.850 に答える
3

TagSoup、HTMLCleaner、NekoHTML などの HTML パーサーを見てください。

于 2010-07-08T09:45:47.023 に答える
3

大量のページまたはデータのスクレイピングを自動化したい場合は、Gotz ETLを試すことができます。

これは、実際の ETL ツールのように完全にモデル駆動型です。スクレイピングするデータ構造、タスク ワークフロー、およびページは、一連の XML 定義ファイルで定義され、コーディングは不要です。クエリは、JSoup でセレクターを使用するか、HtmlUnit で XPath を使用して記述できます。

于 2018-01-23T16:46:03.033 に答える