Webサイトにある膨大なデータをプログラムで取得する技術があります。PythonやRubyを利用すると比較的簡単にサイト情報を自動的に取得できます。
データ取得後の使い道は分析やレコメンドなど様々ですが、データ分析すると思わぬ発見があります。例えば、10人が毎日競争するイベントがあり、人気倍率を決めて誰かに毎回投票した時に倍率×順位の合計値が高いことを競うとします。競争が終わった時に、総合得点が一番低かったのが一番人気である。というようなことがわかります。大量データを入手し利用することはビジネス上で大きなメリットになります。
一方、全てのデータをWebサイトから取得してよいか?となるとそうではありません。Webサイトデータの取得を禁止しているサイトや、Webサイト側のサーバーが弱く、Webサイトに負荷がかかりサイトが落ちてしまうリスクがあります。Webサイトデータを取得する手法はあるが、高度な知識がないとそもそも取得不可およびリスクがあるということです。上記のようなリスクがあるため、私個人としては先方の合意なくWebサイト情報を取得してことはありません。
本記事では、Webサイトデータ取得後の活用事例をもとに、データ取得および利用の有効性とWebサイトデータの取得技術についてご紹介致します。
Webサイト取得データの活用事例
Webサイトのテキスト・画像など全データを取得できる
技術的に話すと、Webサイトに表示されているテキスト・画像データは取得できます。企業によっては取られたくないデータがあるのでダウンロード制御や特殊な制御システムを利用している場合が多いです。とはいえ、手動でデータを入手できるWebサイト構造であればテクノロジーとノウハウを活かして、データ入手できるのが現状です。
サジェストを取得すれば検索ニーズを把握できる
Webサイトから入手する情報は常に見えているものだけではありません。例えば、Webサイトのキーワード検索欄にキーワードを入力した場合に出るサジェスト(よく検索されるキーワードが出現)もデータ取得できます。世間的な検索ニーズの中に新たなビジネスチャンスがありますので、有効手法の1つです。
先方のデータベースから都度アクセスする手間を削減できる
お客様から提供されたデータベースにログインして、データを手動で入手するケースもあるでしょう。データが情報追加・更新の都度、データベースにアクセスして取得するのが通常ですが、Webサイトから機械的に情報を取得し、更新情報を自動的に日次で更新することもできます。
お客様データを利用して自動的にレコメンドをする仕組みを構築していたとすると、Webサイト情報の自動取得により、ある程度タイムリーに新しいデータをレコメンドする仕組みの構築ができます。
Webサイトデータの取得方法
Webサイトのデータ取得はクロールとスクレイピングの技術を利用する
Webサイトから欲しいデータを取得するには「クローリング」と「スクレイピング」という技術を利用します。
- クローリング:Webサイトのページ情報全てをコピーして入手する方法
- スクレイピング:上記で入手した情報のなかから、必用情報のみを抽出する方法
対象Webサイトにクローリングする頻度でWebサイト側の負荷がかわるので、取得時間の設定には注意が必要です。
Pythonでクローリングやスクレイピングする時によく利用するのが下記ライブラリです。
- Selenium
- Beautiful Soup
- requests
Webサイト毎にデータ取得コストがかかる
Webサイト構造は各社違いますので、クローリングとスクレイピングはWebサイト毎に設計する必要があります。Webサイトデータ取得にかかる費用はこの設計コストとサーバー費がメインとなります。対象Webサイトの構造変更があった場合は既存プログラムが動作しなくなるケースがあり、プログラム改修が必要になり別途コストが発生します。
ある程度大規模なWebサイトでも100万~200万円前後でデータ取得できるケースが多いです。データ量が多いほど、データ取得メリットが高いことになります。
ご質問やご依頼について
記事やDX化のご質問や依頼はServiceをご覧くださいませ。