Webサイトクローラー(スクレイピング)の目的・メリット、適切な設定とは

とあるWebサイトクローラーを開発していて、クローラーにとって適切な設定にしたいと考えることがありました。

クローラーの設定のように、選択肢が複数あり複雑なものは判断が難しくなります。そのようなものは、まず考えるための観点(例えば、セキュリティ面ではどう設定すると良いかなど。)から考えるとすんなり進みます。観点があると、一度に考えることが絞られるので考えやすくなります。

具体的にどのような観点かというと、クローラーの目的・得られる利益(メリット)に合った観点を洗い出すと良いです。

今回は一般的なWebサイトクローラーを元に観点を整理してみたので共有してみたいと思います。

f:id:moritamorie:20210118022541p:plain

(結論) Webサイトクローラー適切な設定とは

結論からですが、クローラーの目的から考えると、得られる情報により良い意思決定ができるような設定が適切という結論になり、一般的には以下のような観点で考えると良いと思います。

  • 情報が誤りがなく、正確であること
  • 情報に漏れやダブリがないこと
  • 情報が新しいこと
  • 情報が得られない状況を作らないこと
  • ※これらは一般的なケースであり、他の観点はケース次第。

この結論に行き着いた過程を以下に記載していきます。

クローラースクレイピング)の用途

まず、目的を明確にするには、一般的なクローラーの用途を考えると分かると思い、考えてみました。

用途は、数多くのWebサイトの中から目的の情報をもったWebサイトを巡回・解析し、自分達や世の中の人にとって意味のある情報を抽出・変換する、というものです。

"意味のある情報"という表現だと抽象的すぎるので、具体的な例を挙げると

  • あるモノの価格が上昇していることが分かれば、需要があがっているので、自社でもっと生産しよう・このモノを作る事業に参入しよう、と判断ができる。
  • 逆に、多くの競合他者が販売するあるモノの価格が下がっていることが分かれば、価格競争が始まって供給過多になっていそう。価格競争に巻き込まれると利益が出にくいので、他の事業に注力しよう・事業の撤退を検討し始めよう、と判断できる。

といった情報が、意味のある情報になるかと思います。

f:id:moritamorie:20210118023959p:plain

クローラースクレイピング)の目的

この具体例から、"意味のある情報" というのを別の言葉で言い換えると、"意思決定の判断材料になる情報"ということになるかと思います。

そうだとすると、意思決定の判断材料になる情報収集を機械的にすることがクローラーの目的だということが分かります。より良い意思決定に繋がる判断材料を得ることができれば、仕事などの物事を前に進めたり、より良い成果を得られるようになるかと思います。

より良い成果というと、「売上を上げる」や「早く仕事を終わらせられる」など仕事・ビジネス上での成果だけに聞こえますが、日常生活に関しても同じように言えます。

  • 安くモノ(洋服や家電など)が買える
  • 目的地に早く辿り着く方法を知れる
  • 自分好みのレストランを見つけられる

また成果に関しても

  • 量的(定量的)(安く買えるとか、早く着くとか)な観点
  • 質的(定性的)(美味しい食べ物、好みの洋服とか)な観点

のように観点を明確にすると考えやすくなるかと思います。

適切なクローラーの設定とは

このようにクローラーの目的まで考えると、適切なクローラーの設定とは、より良い成果を得るための意思決定ができるような情報を収集できる設定にするということが分かります。

意思決定にするための情報の精度を元にいくつか観点を洗い出してみました。

  • 情報が誤りがなく、正確であること
  • 情報が新しいこと
  • 情報に漏れやダブリがないこと
  • 情報が得られない状況を作らないこと

一般的にはこのような観点で考えると、適切なクローラーの設定ができそうです。

他の観点は、具体的になケースに依るかと思います。

  • セキュリティ面はどの程度か?
    • どの程度機密性が高い情報を扱うか等に依る
      • 例えば、公開されているサイトの情報を収集するのであれば情報が漏れることはリスクではないので、セキュリティ要件は低い。
  • パフォーマンス面はどの程度の速さを求めるのか?
    • どのくらいの量のデータを扱うのか等に依る
      • 例えば、収集する情報の量が少ないなら、さほど1件あたり早い時間で収集できなくて良い。
  • コストはどの程度までかけて良いか?
    • 情報を得ることでどの程度メリットがあるのか等に依る。
      • 例えば、直接売上には直結しない情報であれば、比較的コストが低いスペックのマシンで運用できる必要がある。

f:id:moritamorie:20210118125834p:plain