少し前まではインターネット上にある無数のサイトからデータを収集するためのツールとしては「クローラー」の一択でしたが、最近では「ソフトウェアロボット」という選択肢もあります。「ソフトウェアロボット」というのは、簡単にいえば人の代わりにパソコンなどを操作するロボットのことで、人が操作するソフトなどを自動で操作させることができるものです。通常、人はインターネット上から何かの情報を集めようと思った時は、ブラウザを立ち上げて、サイトにアクセス、検索などして集めたい情報をコピーアンドペーストなどしてエクセルなどに保存していきます。この一連の作業を、そのまま模倣させることでクローラーと同じように、データ収集を行わせることができるわけです。
クローラーとソフトウェアロボットはどちらも一長一短あり。プロジェクトの要件次第で最適なものを選択するのが正解
この2つの方法を比較するときによく出る質問として「どちらが優れていますか?」というものがありますが、それぞれ一長一短あり、すべての面でどちらかだけが優れているとはいえません。一般的にクローラーと呼ばれる方式では、収集することに特化して作られるため、短時間に大量のデータを処理をしやすいことがメリットのひとつとしてあります。しかし、デメリットとしては、人としての振る舞いをすることは基本的にしないため、人でないとアクセスが難しい作りのサイトのデータへのアクセスなどには適していません。逆に、ソフトウェアロボットは、人の使うソフトを、人が操作するように動かすため、そうしたことがもとめられるデータの収集には非常に向いています。しかし、一方で、人と同じような動作を行うため、無駄な動作、待ち時間などが大量に発生するため、大量のデータ収集、処理を行うことには適していません。
どちらにすべきか迷ったら収集したデータをその後どうするかを考えるのがポイント。後工程の処理を考えるとベストな選択は変わってきます
最も大きな違いとなるのが収集すべきデータ量というところになりますが、それほど多いわけではないという場合は、どちらを選ぶべきか悩みがちです。そんな時、最も良い選択を導き出すために、収集したデータの後工程を考えることが重要です。クローラーにしてもソフトウェアロボットにしても、どちらもデータを収集するために利用するとしても、集めただけで目的が達成でいるわけではないはずです。集めた情報をもとに、差分を出して、その結果を社内にレポートとして共有したり、営業リストとして使ったりと、データを集めるという行為はプロセスにすぎないはずだからです。集めたその後の作業が一体何か、それが仮に人が手動で行うような内容のものであれば、圧倒的にソフトウェアロボットで展開するほうがメリットがあります。逆に、基幹システムなどの他のシステムと連携したりする場合は、クローラーのほうが相性が良く、効率的に組み上げることができます。もし、どちらにすべきか悩んだ場合は、後工程の処理を徹底的に考えてみることをオススメします。
ここで説明した違いは、現時点における2つのツールの違いであって、今後もこの違いが維持されるわけではありません。現在のソフトウェアロボットの課題は、あくまで人が使う前提で作られたパソコン、OS、ソフトウェアを使う前提になっているからです。これが、最初からソフトウェアロボットが利用する前提のアプリケーション類を使うようになれば、課題となっているスピードは大幅に向上させることができるようになります。また、クローラーがより人に近い振る舞いを簡単に実装できるようになる可能性もあります。こうなると、クローラーを使わない理由もなくなってきます。どちらが優れているかは、プロジェクト要件とその時の技術の状況によって答えが変わってきます。今後も、この2つの進歩からは目を離せそうにありません。