4

私は、特定のニュースの主題に関するユーザークエリを取得し、さまざまなニュースWebサイトにアクセスして、それらのページからニュースコンテンツを抽出し、いくつかのファイル/データベースに保存できるJavaでWebクローラーを設計する必要があるプロジェクトに取り組んでいます。保存されているコンテンツ全体の概要を作成するためにこれが必要です。私はこの分野に不慣れなので、それを行う方法を経験した人からの助けを期待しています。

現在、ページを手動で取得する単一のページからニュースコンテンツを抽出するコードがありますが、それをWebクローラーに統合して別のページからコンテンツを抽出する方法がわかりません。

誰かが私のニーズに応じて使用または変更できるJavaのチュートリアルまたは実装へのいくつかの良いリンクを与えることができますか?

4

5 に答える 5

8

http://jsoup.org/

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");
于 2012-04-04T20:04:36.023 に答える
5

他の回答に加えて一言アドバイス-クローラーが尊重するrobots.txt(つまり、サイトを迅速かつ無差別にクロールしない)か、訪問したいサイトによって自分自身/組織がブロックされる可能性があることを確認してください。

于 2012-04-04T21:52:38.120 に答える
3

ほとんどの人が推奨するオープンソースのJavaライブラリを次に示します。

私の個人的なお気に入りは、速度と構成のしやすさの点でJavaWebCrawlerです。

ところで、それがそれほど大きくない場合、割り当てのために、ソースWebサイトが頻繁に変更されていない場合は、単純なHTMLパーサーを実装することをお勧めします。

それが役立つことを願っています

于 2012-04-04T20:10:03.243 に答える
0

ここで私の答えを確認することをお勧めします:アプリケーション(Webまたはコンソール)でGoogleのような再クロールを導入し、Webクローラーを設計するにはどうすればよいですか?

最初の回答はC#の質問に対して提供されましたが、実際には言語に依存しない回答であるため、Javaにも適用されます。私が両方の答えで提供したリンクをチェックしてください、いくつかの良い読み物があります。また、自分で作成するのではなく、既存のJavaクローラーの1つを試す必要があるとも言えます(これは小さなプロジェクトではありません)。

...特定のニュース主題に関するユーザークエリを取得し、さまざまなニュースWebサイトにアクセスし、それらのページからニュースコンテンツを抽出して、いくつかのファイル/データベースに保存できるJavaのWebクローラー。

その要件は、「単なるクローラー」の範囲を超えて、機械学習と自然言語処理の領域に入るようです。ニュースを提供していると確信しているWebサイトのリストがある場合は、ニュースコンテンツを抽出できる可能性があります。ただし、それでも、Webサイトのどの部分がニュースで、何がニュースでないかを判断する必要があります(つまり、リンク、広告、コメントなどもある可能性があります)。では、ここでどのような要件に直面しているのでしょうか。ニュースサイトのリストはありますか?ニュースを抽出する信頼できる方法はありますか?

于 2012-04-04T20:06:25.803 に答える
0

この記事は、Webクローラーについて読んでいたときに非常に役立ちました。

マルチスレッドクローラーを開発するためのステップバイステップガイドを提供します。

本質的に、以下はクローラーが何をすべきかについての非常に高レベルのビューです

- Insert first URL in the queue

Loop until enough documents are gathered:
   - Get first URL from the queue and save the document
   - Extract links from the saved document and insert them in the queue
于 2012-04-04T20:39:50.953 に答える