2009-04-07 14 views
12

特定のものをクロールしたい。特に、コンサート、映画、アートギャラリーのオープニングなどのようなイベントがあります。誰かが時間を費やすかもしれないもの。インターネットをクロールする

クローラを実装するにはどうすればよいですか?

私はグラブの聞いたことがある(grub.org - >ウィキア)とHeritix(http://crawler.archive.org/

があり、他はありますか?

どのような意見がありますか?

-Jason

答えて

3

ウェブクローラーの部分が作業の最も簡単な部分になると思います。難しい部分は、訪問するサイトと、訪問したいサイトのイベントを発見する方法を決定することです。おそらく、GoogleまたはYahoo APIのいずれかを使用して、必要なデータを取得する方法について見たいと思うかもしれません。彼らはすでにインターネット上の多くのページをクロールする作業を行ってきました。あなたは、とにかく、あなたが探しているイベントを得るためにデータをふるい落とすという非常に厳しい問題に集中できます。

0

は、言語固有の要件はありますか?、

私は

最後に、個人的な実験のためにしばらく前に、.NETチルカットスパイダーのLibのためで遊んでいくつかの時間を費やして、私はそこにクモLibsのを確認し、ライセンス供与されていますフリーウェア、 (私の知る限りAltho開いていないソース:()として

は、彼らは、PythonのLibのに。

http://www.example-code.com/python/pythonspider.asp #Pythonを持っているようだ http://www.example-code.com/csharp/spider.asp#.net

1

インターネットをクロールするとタスクが開始されることがわかった場合、RSS aggregatorを構築し、craigslistやupcoming.orgのような一般的なイベントサイトのRSSフィードを購読することを検討してください。

これらのサイトのそれぞれは、ローカライズされた検索可能なイベントを提供します。 RSSはウェブを構成するすべての不正なHTMLにする代わりに、(いくつかの)標準化されたフォーマットを提供します...

ROME(java)のようなオープンソースのライブラリは、RSSフィードの消費に役立ちます。

0

Kevin's RSSフィードの提案に続いて、Yahoo pipesをチェックしてみるとよいでしょう。まだ試したことはありませんが、いくつかのRSSフィードを処理し、WebページやRSSフィードを生成できると思います。

+1

大きなものにはパイプを使用しないでください。非常に信頼性が高く、かなり遅いわけではありません。 – mixdev

4

Scrapyをチェックしてください。 Pythonで書かれたオープンソースのWebクローリングフレームワークです(私は、ダウンロードしたページを提供する代わりにDjangoに似ていると聞いてきました)。それは容易に拡張可能で、分散/並列であり、非常に有望です。

私はスクラップされたコンテンツなどから正しいデータを抽出し、データベースに挿入するような、より些細なことのために自分の強みを保存することができます。実際のスケール指示クローラを書く

2

非常に困難な作業です。私は仕事でそれを実装し、しばらくそれを維持した。あなたが1つを書いて問題を打つまでは、あなたが存在するかどうかわからない多くの問題があります。特にCDNとサイトのフレンドリーなクロールを扱う。適応アルゴリズムは非常に重要です。そうしないと、DOSフィルタが動作しなくなります。実際には、あなたのクロールが十分に大きければ、あなたはそれを知らなくても何とかします。考える

もの:

  • ことができ、スループットを除いては何?
  • サイトの停止をどのように処理しますか?
  • ブロックされた場合はどうなりますか?
  • ステルスクロール(contreversial、実際には非常に難しい)に従事したいですか?

実際に書いたことがあるのですが、私がこれまで周りを回っていれば、適切なものを作ることは人よりもはるかに厳しいので、クローラの建設についてオンラインにするかもしれません。ほとんどのオープンソースクローラーはほとんどの人にとって十分に機能しますので、もしあなたがそれらの1つを使用することをお勧めします。フィーチャー/プラットフォームの選択肢はどれですか?