クローラーには特定のコンテンツを取得して、エクセルなどで利用しやすい正規化した状態のデータを作るアプリ型のクローラーと、とにかく新規のページを見つけて情報を集めることに特化したロボット型のクローラーがあります。今回、お話をするのはロボット型のクローラーのお話です。
ロボット型のクローラーは特定の目的のために大量のデータを収集したいというニーズに適したクローラーです。HTMLページのソース内に記載されたリンクや画像などのファイル呼び出しを見つけ出して、どんどんクロールをしていくというものです。仮に1ページのなかに30個のリンクが含まれていたとすると、1ページから30ページ分のリンク、30ページからは900ページ分のリンクを見つけることができます。通常、このように見つけたURLデータを管理し、恒常的にクロールをしていくわけですが、ネット上には膨大な数のサイト、ページがある上に、毎日大量のページが新たに作られていきます。そのため、いつまでたっても新規のページ収集は終わりません。終わりがくれば、さあ、見つけたページをもう1周して、更新をはじめるというモードに入れるわけですが、終わりがいつまでもこないとずっと新規のページを見つけるだけの動作となってしまいます。既に見つけた価値あるページの更新を確認にいくのはいつになるか全くわからないという状態になるわけです。
そこで、ロボット型クローラーの導入をする場合は、新規と既存ページの更新という2つのバランスをどうとっていくのかという点が重要になります。ただの既存ページであれば、更新する必要性はそれほどないかもしれませんが、ビジネス的に価値があるページを見つけた場合は、そこは重点的に更新を確認にいきたいところです。しかし、そこばかり回っていては、新規に作成された価値があるかもしれないページをクロールにいけません。すべての要件を満たそうとするとコスト高になるため、現実的なやり方としては新規と更新の優先度をどうやってバランスをつけてまわしていくかということになります。ロボット型クローラーの導入を検討されている場合、ユースケースから理想的なバランスを見つけ出しておくと投資がいきやすくなります。