ホームページには、営業やマーケティングで活用できるお宝のような情報が詰まっています。こうした情報を効率的に収集するためにクローラーが利用されることは非常に多いわけですが、ただ取るだけと簡単に思っていると思わぬ落とし穴にはまることがあります。それはそもそも取得していいのかどうかから始まり、取得したデータの利用方法から考えるとどのようなアウトプットなのかであったり、求められる安定性についてであったりします。こうした導入の際に気を付けておきたい注意ポイントを紹介していきます。
そのサイトはクローラーでデータを収集していいのかを考える
普段、何気なくホームページを見ていると「このページをとりたい」と考えがちですが、実際にクローラーを導入して情報収集を開始する場合は、クローラーでデータを集めていいサイトなのかどうかから考える必要があります。それはサイト側の宣言によってクローラーによるデータ収集を禁止しているサイトがあるためです。宣言の方法は主に2つあり、1つはrobots.txtというファイルにクローラーに対する挙動の希望を記載するというものです。ここに収集しないでほしいと書いてある場合は、著作権上、保護の対象となるため、利用用途などによっては取得は好ましくないため、検討する必要があります。もう1つの宣言方法は、サイトの利用規約などにおいて記載するというものです。たとえばfacebookなどのSNSの多くは、ボット、つまりクローラーによる自動の情報収集を規約上、禁止していいます。この場合、クローラーによるページデータの取得などは規約上、違反行為となるため好ましい行為とはいえません。
アウトプットはどんなものを期待しているのかサンプルを実際に作ってみて考える
ホームページからデータを集めるというと、なんとなく簡単そうに思えてしまいますが、実際には期待した状態を作り出すためには考えることがたくさんあります。たとえば、特定のサイトから新着の情報を集めたいと思ったとき、それは何件あるのか、どういった周期で更新されるのか、更新が開始される時間や曜日はいつなのかなどを調べて考える必要があります。毎週、火曜日と木曜日に新着情報が掲載されるサイトがあったとした場合、月曜日の朝10時から取得を開始しても古いデータしか取得できませんし、掲載がすぐに終わってしまった情報などはそもそも収集することができない場合があります。抜け漏れなく、可能な限り最新の情報を効率的に集めたいと考えているのであれば、こうした情報をまずはまとめる必要があります。また、社名をあつめてリスト化したいと思っている場合、具体的にどの場所に掲載されているのが社名なのかをはっきりとさせる必要があります。一見すると社名のように見えても、実際には違う場合もありますし、複数の社名が1ページ内で掲載されており、どちらを採用するか考えなければならない場合などがあるためです。わかりやすいところでいえば、求人情報などの場合、求人の掲載企業と、勤務先の企業は違う場合があります。掲載企業は東京の本社だとしても、勤務先は福岡支店だとすると、社名のところには〇〇株式会社という記載と、〇〇株式会社福岡支店というように、同じページのなかでも記載が分かれることもあります。この場合、希望するのはどちらなのか、分けるのであれば、どのように分けるのかなどを明確に定義しておく必要があります。取得してみたら思っていたほど使えなかった、というような状況に陥らないためには、実際に手動で収集して、できる限り多くのサンプルを作ってみることが大切です。
いつも取得できるとは限らない。クローラーが情報を収集できていない時はどうするのかを考える
ホームページからデータをクローリングするというと、何もしないでも自動で動き続けてくれる印象を持ちますが、実際にはそう簡単にはいきません。それは相手サイトのサーバーメンテナンスなどがあるためです。水曜日の深夜3時からクローリングを開始して、朝の10時にデータをダウンロードして利用する、という想定でワークフローを考えていたとします。この場合、クローリングに利用するのは3時~8時までの5時間、8時~9時で収集データを希望される形に変換する処理をして、10時に提供するというようなスケジュールで稼働することになります。この時、もし深夜の2時から6時まで相手のサイトがメンテナンスをしたいたとしたら、実際に取得を開始できるのは6時以降となり、実質2時間ほどしかクロールに時間を割くことができません。この時、件数が少なければ問題がないのですが、通常4時間かかるような場合、半分ほどのデータを集めるのが精いっぱいです。では、この時、どうするべきでしょうか。1つは取れた分だけを10時に受け取る。この選択肢は一番シンプルですが、データとしては不完全なものとなるため、用途によっては適しない状態といえます。やはり、データはしっかりと集まっていないといけないという場合は、取得が完了してからデータを受け取るという方法があります。この場合、通常、10時に受け取れるものが、13時になってしまうことを許容する必要があります。このようにクローラーによるデータ収集は常に安定、確実に稼働をするわけではありません。そのため、可能な限り、収集が終わらなかった場合の処理として期待する動きはどのようなものを考えておく必要があります。
クローラーでホームページからテキストが画像データを集めるだけと思っていると、実際に運用を開始してから様々な問題に直面することも多くあります。ここでご説明させていただいたようなポイントを、導入前に検討しておくことで、より実践的な活用ができるようになります。