インターネットを介したサービス、いわゆるクラウド型のものが多くなってきている中で、ログインを行った後のマイページなどにアクセスして、特定の情報を確認したり、ダウンロードしたりする作業が増えてきています。こうした業務は、単調ではあるものの欠かすことができない、効率化することも難しいもののひとつです。クローラーというと、公開されているページを収集するもの、リンクを辿っていくものというイメージを持っている方もいらっしゃいますが、実際にはブラウザを介してリクエストして、表示されることができるものであればほとんどのものにアクセスして収集することが可能です。ログインが必要なページへのアクセスなども可能で、こうしたページから特定の情報を収集、確認するような業務を効率化するためにも活用されています。
重要なのは「クロールできるか」ではなく「クロールしても良いか」
よく質問をされるのが「ログインした後のページの情報をクロールして集めることってできますか?」というものです。まず、これはほぼ間違いなくできます。ほぼ確実といえるレベルで自動でのログイン、自動で取得は問題なくできます。問題になるのは「クロールできるか」ということではなく、それよりも先に「クロールして取得しても問題はないのか」というところです。インターネット上に公開されている情報は、robots.txtの宣言によってクローラーの拒否がない限り、ページデータ等の収集が問題はなりません。収集という作業は、ブラウザなどにおけるリンクのクリック、つまりページデータのリクエストをして受け取るという行為にすぎません。人がページをみて問題にならない場合、プログラムで自動的にやることが問題になることもありません。(人では不可能な高負荷なリクエストを継続するなどした場合は問題になりますのでそこはしっかりと配慮は必要です) しかし、ログインをする場所というのは、公開されているわけではなく、非公開にしたい情報が含まれている場所になります。ここでは、ログインに必要な会員登録などのアカウント発行の際に会員規約、利用規約等で、利用する条件を定めており、その条件に合致しない利用方法は拒否することができます。会員登録をする、そしてログインする、この行為を通して、そうした規約を承諾することになるため、もし、規約などでログイン後のページのクロールによるアクセスの禁止などが記載されていた場合、それに準じる必要があります。クロールはできるが、クロールをしていいわけではないということです。まずはここをしっかりと確認しましょう。
単純なリンク以外のリクエストも自動化で対応可能。人が行う詳細な作業手順をまとめてクローラーで集めたい情報についてしっかりと定義しよう
確認をした結果、規約上、特に問題がなければ、どういった周期で、どういった情報を取得したいのかをまとめて歯稼働の仕様を決めていきます。取得しに行く周期、時間、取得したデータの処理、提供方法、こうしたことを決めていきます。ログインした後のページなどでは、特定の条件を人が手動で設定、選択し、決定ボタンを押して表示させ、その結果をダウンロードするなど、単純なリンクでない挙動を行うことも少なくありません。業務で利用するクラウド型のサービスなどの場合、こうした傾向は特に強く、単純なリンクではない、プルダウンや日付の選択、確認ボタンを押す、その後のダウンロードボタンを押すなど、こうした一連の流れもクローラーを調整することで対応は可能な挙動になりますので、どういった動きを期待しているのか、最終的にどういったデータを欲しているのかを明確にして、仕様にまとめていきます。その後は、開発、テストを行って、毎日のルーチン業務の自動化の完了です。
人でないとできないと思っているような複雑な作業であっても、ブラウザを使うサービスなどであれば、ほとんどの動作をクローラーは代行することが可能です。人手が足りない現場などでは、人を増やすことを考える前に、低コストで自動化が実現できる、クローラーを活用を検討してみてはいかがでしょうか。