Webスクレイピングとは?活用方法とプログラム構築の際の注意点を解説

Web上から自分の欲しいと思ったデータを抽出したい、インターネット上の情報を詳しく分析したいと思ったことはありませんか?そういったときに使う技術がWebスクレイピングです。本記事ではWebスクレイピングを詳しく解説します。

Webスクレイピングとは

WebスクレイピングとはWebサイトから大量の情報を自動で抽出し、そのデータを収集して分析・格納可能なデータへと変換するコンピューターソフトウェア技術です。また、その抽出するプログラムをスクレイパーと呼びます。Webスクレイピングを使えば業務効率や生産性を高めることができます。そのため、マーケティングや研究分野におけるデータ解析や価格調査、商品レビュー収集などの様々な場面で活用されています。

クローリングは巡回、Webスクレイピングは抽出

Web上をプログラムによって巡回することをクローリングと呼びます。クローリングの多くは情報収集が目的です。あらゆるサイトを巡回しSEOを評価するgooglebot等が例に挙げられます。Web上を巡回して情報を得るという段階まではWebスクレイピングもクローリングも同じですが、Webスクレイピングの場合は収集した情報から余分な情報を削ぎ取る点、加工を施し必要な情報だけ残す点で異なります。

Webスクレイピングは公式にサポートされていない

Webスクレイピングと似た技術としてAPIがあります。APIは収集先のWebサイト側があらかじめ使ってもらいたいデータをネット上に公開しているものです。Webスクレイピングは収集者が主体となって情報を収集するのに対し、APIはサイト側が公式に収集者側に情報を提供しているという違いがあります。つまり、APIは情報を提供することをサイト側が許可しています。一方、収集先がAPIを提供していない場合は、どうしてもWebスクレイピングに頼らざるを得ません。

Webスクレイピングの作業手順

では実際に、Webスクレイピングを行うプロセスを順を追って説明します。

一つ目に、収集したい先のWeb上から必要な情報を得るためのプログラム(スクレイパー)を作らなくてはなりません。二つ目に、収集したデータを解析し、必要なデータだけ抽出します。三つ目に、抽出した情報を本来の目的に沿った分析を行います。四つ目に、分析したデータを元に利用者各々の目的に沿ったアクションを行います。

Webスクレイピングは具体的に何ができる?

Webスクレイピングを行うことで具体的にどのような活用ができるのでしょうか。下記で例を挙げて解説します。

自動リサーチによるマーケティング

Webスクレイピングを行うことで、市場データのリサーチ作業を自動化できます。例えば自社商品の価格を決めるとき、本来ならばオークションサイトや価格情報サイトから相場価格を手作業で調べて入力したうえで判断しなくてはなりません。しかし、Webスクレイピングプログラムを使って「検索→価格を抽出→シートに入力」という単純作業をシステムで動作させれば、リサーチ時間を大幅に削減できます。さらに、日にちを追ってリサーチできるように動作を組み込めば、価格変動といった商品のトレンドも把握できます。

Webスクレイピングを組み込んだアプリやWebサービスの開発

Webスクレイピングの技術はアプリやWebサービスにも取り入れることが可能です。例えば、GoogleやYahoo!等の検索エンジンもWebスクレイピングの技術を取り込んだ一般ユーザー向けのWebサービスです。ほかにも、グノシーというニュースキューレーションアプリも様々なニュースサイトから情報をWebスクレイピングすることによってニュースを公開しています。

上記のようにWebスクレイピングはとても便利な技術です。

Webスクレイピングが活用される場面

実際に様々な業種でWebスクレイピングの技術が有効活用されています。具体的にどういった場面でWebスクレイピングの技術が活かされているのか、いくつか具体例を挙げて説明します。

投資情報の自動収集

Webスクレイピングを利用することによって株価の変動をリアルタイムで追跡することができます。ただ注意して欲しいことが、Yahoo!ファイナンスのように株価を掲載しているほとんどの投資情報サイトでWebスクレイピングが禁止されている点です。そういった理由から、Webスクレイピングが許可されている投資情報サイトかどうか事前に確認する必要があります。

検索順位自動収集による効率的なSEO対策

競合サイトでWebスクレイピングを行うことによって競合他社の動向をリサーチすることができます。競合他社の戦略を知ることで、自社の戦略により磨きをかけることができます。また、Webスクレイピングを使えば競合サイトではどういったSEO対策キーワードを使っているかを知ることもできるので、自社サイトのSEO対策における大まかな指針にもなります。

商品価格、商品レビューを収集し人気商品を比較

「お客様の声」をWebスクレイピングで大量に収集し、分析することができます。例えば、ショッピングサイトやECサイト等に掲載されている商品レビューや、SNS上に投稿された自社商品に対するクチコミ等です。生の声を拾うことによって、ユーザーのニーズをより鮮明に把握できるので、ユーザーの購買意欲をかきたてる商品開発につながるといった自社のマーケティング活動にも有効です。

SNSからデータを収集して流行を探る

TwitterやFacebookなどのSNSから情報をWebスクレイピングすることによって世界中の動向や流行をキャッチでき、ビジネスやマーケティングに活用できます。例えば、自社商品に言及している影響力の強いアカウントを探し出し、インフルエンサーマーケティングにも起用できます。また、自社商品の口コミから共通キーワードを洗いだし、SEO対策に役立てることも可能です。

営業リスト作成を自動化

Webスクレイピングを行うことによって、営業マンにとってなくてはならない営業リストを作成できます。例えば、飲食店にアプローチしたい場合はグルメサイトから、そしてホテルに営業する場合は旅行サイトから情報をWebスクレイピングし営業リストを作成します。各業界の営業リストを情報が集まっているサイトから地道に手作業でエクセルに記入する手間も省くことができます。

人気のスポットやグルメを抽出しランキング作成

観光地のランキングサイトを作りたい場合、Webスクレイピングで旅行情報が掲載されているサイトや地図アプリの評価を自動的に収集できます。もし手作業でリサーチすると膨大な作業量になるところをプログラムを組み、サイトに埋め込むだけで事足ります。リアルタイムに更新される評価情報にも対応できるため、サイトの更新も必要ありません。

求人情報を一括で取得

Indeedやタウンワークといった求人サイトは独自の基準で検索上位に最適化しています。Webスクレイピングを使えば「介護士」で検索して表示される求人情報を収集し、どのようなタイトルや本文を使えば上位表示されるかを分析できます。自社の求人広告を執筆する際に有効活用できるでしょう。

不動産の物件情報を把握

不動産のポータルサイトを自動収集し、データを自動的にため続けるWebスクレイピングプログラムを組むことができます。不動産売買を考えている方ならば、媒体ごとや物件ごとに比較検討し、適正価格で取引も可能です。不動産業者ならば、掲載されている物件情報を自社サイトに手作業で入稿する手間もかかりません。

航空券・宿泊施設の価格情報を収集し適正価格で購入

航空会社で格安で販売されているチケットを一定価格の安さになれば購入できるようにプログラムを組むことができます。つまり、航空会社のサイト情報が更新されると、自動で予約できるといったシステムです。また、複数の宿泊サイトに掲載されている情報をひとまとめにし、価格を比較することもできます。実際、Googleの検索サイトでは実装されています。

Webスクレイピング準備段階で検討すること

Webスクレイピングを行う前にいくつか確認しておくべきポイントが何点かあります。

下記で詳しく解説します。

Webスクレイピングでなければならない理由を確認する

Webスクレイピングを行う前にAPIがあるかどうかはまず確認するべきポイントです。

もちろん、APIによって得られる情報で不十分な場合はWebスクレイピングを行う必要があります。しかし、不必要にWebスクレイピングを行えば万が一にも法にふれてしまう可能性もあります。Webスクレイピングを行い、不用意にリスクを生まないようにしましょう。API公式から提供されている場合は優先的に使用しましょう。

相手のサーバーに負荷がかからないよう設計する

Webスクレイピングは短時間で何度もサーバーにアクセスするため、情報収集先にあたる相手のサーバーに多大な負担をかけてしまう可能性があります。最悪の場合、動産不法侵入の罪に問われ逮捕されてしまいかねません。実際に他のサイト訪問者の閲覧を妨げてしまう原因にもなります。なるべく迷惑をかけないためにも、アクセスの間隔を数秒空けて相手のサーバーに負荷をかけにくくするといった配慮が必要です。

Webスクレイピングの注意点

Webスクレイピングを行う際に心がけたいポイントは他のサイトに迷惑をかけないようにすることです。先程も申し上げた通り、罪に問われる可能性もあります。下記でどういったことに注意すべきか詳しく解説します。

Webスクレイピング対象サイトの利用規約を遵守する

サイトの利用規約でWebスクレイピングが禁止されていないかを確認することです。禁止されているにもかかわらずWebスクレイピングしてしまうと、不法行為責任の罪を負う可能性があります。特に、上述のYahoo!ファイナンスのように投資の情報サイトではWebスクレイピングの禁止事項を盛り込んでいる事例が顕著にみられます。そのため、投資情報をWebスクレイピングする際は利用規約のチェックをおすすめします。

Webスクレイピング対象サイトのアクセス制限を遵守する

クローラーからのアクセスを制限するファイルにrobots.txtというメタタグがあります。URLごとにアクセス許可の有無が書かれているため、robots.txtのアクセス制限内容は守るようにしましょう。万が一、アクセス制限のかかった情報を取得してしまった場合は削除して使用しないようにしましょう。

著作権法

Webスクレイピングする際にもう一つ注意を払わなければならないのが著作権法です。抽出したデータを情報解析目的で使用することは法律に触れません。しかし、著作者の同意無しにコピーしてネット上に公開することや、他人に譲渡することは違法です。Webスクレイピングによって取得したデータは著作権法上の「著作物」にあたるためです。データの取り扱いには最大限注意しましょう。

個人情報保護法

Webスクレイピングによってユーザーの同意を得ずに個人情報を取得や公開、売買を行うことは個人情報保護法に違反する行為です。特に、人種や病歴など個人情報でも配慮が必要な「要配慮個人情報」は原則として本人の同意無しに取得できません。ただし、Webスクレイピングによって取得した個人情報で、法人や特定の業種の企業リストを作成し分析することは違法ではありません。

Webスクレイピングプログラム構築に使う言語

ライブラリを使えば独自のWebスクレイピングプログラムを意外と簡単に構築できます。ライブラリとは汎用性の高い複数のプログラムを再利用可能な形でひとまとめにしたものです。ライブラリが充実しているほど、プログラムにおいてできる幅が増えます。この章では、Webスクレイピングプログラムを構築する上で有効なライブラリの揃う「Python」「Ruby」「JavaScript」の3つのプログラミング言語を紹介します。

Python

最もWebスクレイピングに適したプログラミング言語です。Webスクレイピングのライブラリで効率的にコードを書くことができます。またPythonは、Webスクレイピングに関する最新の情報が充実していることも特徴です。

Ruby

Pythonと比較すると軽量なライブラリです。

RubyでWebスクレイピングを行う際によく使われる「Nokogiri」というライブラリが非常に人気があります。

JavaScript

JavaScriptはWebスクレイピングに関するライブラリがいくつかあるのでWebスクレイピングすることはできます。ただし、環境構築に手間がかかるので、特に理由が無ければ上記のPythonかRubyを使うことがおすすめです。

Webスクレイピングは正しく活用すればとても役に立つ技術

Webスクレイピングはビジネスシーンにおいて非常に便利な技術です。ただし、注意しなければ著作権法や個人情報保護法などの法律に触れてしまうリスクもあります。Webスクレイピングはルールを守り、正しく活用していくことが大切です。