2

みなさん、たまにウェブサイトからのデータ収集タスクを自動化する必要があります。ディレクトリからのURLが必要な場合もあれば、XMLサイトマップが必要な場合もあります(そうです、そのためのソフトウェアやオンラインサービスがたくさんあることはわかっています)。

とにかく、前の質問のフォローアップとして、Webサイトにアクセスできる小さなWebクローラーを作成しました。

  • 1つのWebサイトと簡単かつ迅速に対話するための基本的なクローラークラス。

  • 「doAction(StringURL、String content)」をオーバーライドして、コンテンツをさらに処理します(たとえば、コンテンツを保存、解析します)。

  • コンセプトにより、クローラーのマルチスレッド化が可能になります。すべてのクラスインスタンスは、処理されキューに入れられたリンクのリストを共有します。

  • オブジェクト内で処理されたリンクとキューに入れられたリンクを追跡する代わりに、データベースにリンクを格納するためにJDBC接続を確立できます。

  • 現在、一度に1つのWebサイトに制限されていますが、externalLinksスタックを追加し、必要に応じて追加することで拡張できます。

  • JCrawlerは、XMLサイトマップをすばやく生成したり、必要な情報のWebサイトを解析したりするために使用することを目的としています。軽量です。

上記の制限がある場合、これはクローラーを作成するための適切な方法ですか?どんな入力でも非常に役立ちます:)

http://pastebin.com/VtgC4qVE-Main.java http://pastebin.com/gF4sLHEW-JCrawler.java
http://pastebin.com/VJ1grArt-HTMLUtils.java _
_ _

4

3 に答える 3

5

クローラーはrobots.txtをまったく尊重していないようで、偽のUser-Agent文字列を使用して、それがWebブラウザーであるかのように見せびらかします。これは、将来、法的な問題につながる可能性があります。これを考慮に入れてください。

于 2010-05-29T23:03:07.453 に答える
2

私は自分の会社でカスタムWebクローラーを作成しましたが、あなたが言及したのと同様の手順を実行し、それらが完璧であることがわかりました。言いたい唯一のアドオンは、一定期間後にクロールするためのポーリング頻度が必要であるということです。 。

したがって、「オブザーバー」デザインパターンに従って、特定のURLで一定期間後に新しい更新が見つかった場合に、更新またはファイルへの書き込みを行う必要があります。

于 2010-05-29T19:38:53.267 に答える
0

クローラープロジェクトの開始点としてオープンソースのJSpiderをお勧めします。これは、robots.txtを含むWebクローラーのすべての主要な懸念事項をカバーし、各ページに独自のタスクを適用するために使用できるプラグインスキームを備えています。訪問します。

これは、JSpiderの簡潔で少し古いレビューです。このページの周りのページでは、他のいくつかのJavaスパイダリングアプリケーションを確認しています。

http://www.mksearch.mkdoc.org/research/spiders/j-spider/

于 2010-05-30T08:00:11.100 に答える