2010-11-24 16 views
19

私は限られた数のWebサイトを索引付けする専用の検索エンジンWebサイトを構築しようとしています。私が思いついた解決策は以下のとおりです。Nutchへの代替Webクローラー

ウェブクローラとしてのNutchを使用して
  • 、検索エンジンとしてのSolrを使用して
  • フロントエンドおよびサイトのロジックは、自動改札で符号化されます。

問題はNutchがかなり複雑で、詳細なドキュメント(書籍、最近のチュートリアルなど)が存在しないにもかかわらず、カスタマイズするソフトウェアの大きな部分だということです。今

質問:

  1. サイトの穴の考え方についての任意の建設的な批判?
  2. Nutch(サイトのクロール部分)に代わって、良い選択肢がありますか?

おかげ

+7

私たちは何年もeveythingを試しています:Nutch、Heritrix、Storm Crawler、crawler4j、自社のクローラしかし、そこには本当に印象的な選択肢が1つしかありません。私たちのチーム全体は、Mixnodeによって誓っています。 –

答えて

4

ScrapyウェブサイトをクロールPythonライブラリです。 Nutchと比較してかなり小さく、限られたサイトクロール用に設計されています。それは私がかなりカスタマイズすることがわかったDjangoタイプのMVCスタイルを持っています。

4

クロール部分については、私は実際にanemonecrawler4jが好きです。リンクの選択とページ操作のためのカスタムロジックを追加することができます。保持することに決めたページごとに、Solrへの呼び出しを簡単に追加することができます。

2

In、C#。しかし、はるかに簡単で、著者と直接コミュニケーションを取ることができます。 (私)

私はNutchを使用していましたが、あなたは正しいです。それは一緒に働くクマです。

http://arachnode.net

3

それはあなたがクロールをどのように考えるか多くのWebサイトなどのURLに依存します。 Apache NutchはApache Haseopに依存するApache HBaseにページ・ドキュメントを格納していますが、実用的ですがセットアップと管理は非常に難しいです。

クローラはページをフェッチ(CURLのように)してURLデータベースにリンクするリンクのリストを取得するだけなので、自分でクローラを書くことができます(特にいくつかのWebサイトがある場合)シンプルなMySQLデータベース(RabbitMQなどのキューソフトウェアを使用してクロールジョブをスケジュールする)を使用します。他の側では

、クローラはより洗練された可能性があり、あなたはあなたのHTML文書からヘッド部を取り外し、などのページの唯一の本当の「コンテンツ」を保つためにしたいこと...また

、NutchのPageRank algoを使用してページをランク付けすることができます.Sparkがメモリ内のデータをキャッシュできるため、Apache Sparkを使用して同じ処理を行うことができます。

0

私はあなたがアプリケーションに最適な選択だと思いますが、必要に応じて、簡単なツール:Heritrixがあります。 さらに、solrはjsによって容易に処理されるjsonを返すので、私はフロントエンド言語のためにjsを推奨します。

関連する問題