Webサイトから特定データを自動的に収集する方法【Webスクレイピング】
タケナカタケナカ

今回は、インターネット上のWebサイトやSNS、各種サービスの管理画面などから自動的に情報を抽出する方法を紹介します。

自動抽出の仕組み・Webスクレイピングとは?

Webからデータを抽出してくる技術の事をWebスクレイピングと呼びます。(たまにWebスパイダーなどとも呼ばれています。)インターネット上のあるWebサイトを見ながらコピー&ペーストで書き写したりすることもあると思いますが、こういった作業は機械で自動化する事ができます。

ほんの数件コピーするだけであれば人間が手動で行った方が速いでしょう。しかし、コピー&ペーストの分量が多かったり、毎日機械的にチェックして記録しているといったケースであれば、自動化することで人間の作業が無くなるので楽になります。

ただし、こういったケースでWebスクレイピングは最初に考えるべき手法ではありません。なぜなら大手のWebサービスなどでは、API(アプリケーション プログラミング インターフェース)が提供されているケースも少なくないからです。

APIとはサービス側が提供してくれる情報取得用のサービスで、指定された形式でAPIに依頼すると指定されたデータを返してくれます。ですので、最初は抽出したいデータがAPIで提供されていないかを見る必要があります。

しかしながら、APIで提供されていないデータの取得が必要となるケースや、APIの提供が豊富なのは大手サービス以外からの抽出が必要となるケースでは、Webスクレイピングを活用してデータを取得する事になります。

例えばFacebookやTwitterでいいねの数等は、自前で調べなくても提供されたAPIを活用して取得する事ができます。こういったケースではWebスクレイピングを自前で用意する必要はありません。むしろAPIを使いましょう。

では、どのような場合にWebスクレイピングが使えるかを以降で紹介します。

Webスクレイピングはどういった用途で使えるのか?

画面の変化をとらえる

例えばセールの開始情報などをサービス側が連絡してくれるケースもありますが、なるべく開始早々に知りたい場合にはスクレイピングの技術が使えます。

先着順のサービスなど皆と同時にメルマガの通知を受け取ってからでは出遅れてしまうといったケースでは、人より早く動き出せるかもしれません。

具体的には数分置きくらいに「目的のWebサイトに自動アクセスを行って画面の内容に変化が無いかチェックする」という機能を仕込んでおけば、画面に張り付いていなくとも新しい情報に変わったことをすぐに検知することが出来ます。

変化を検知出来れば、後はメールやLINEなどお好みの通信手段でお知らせするだけです。

毎日の定型データ取得

株価やライバルECサイトが出品している商品一覧をチェックしているケース、他にもECサイトの日々の売上情報を管理画面で確認してスプレッドシートに転記するような業務がある場合にはWebスクレイピングの技術を使えば作業を自動化する事が可能です。

ログインが必要な管理画面などは全てが自動で出来るわけではありませんが、サイトによっては機械的にログインして中の情報を抽出する事が可能な場合も多いです。そのため、これらの業務を行っている方は一度自動化してみると大幅に業務効率が改善するかもしれません。

分量の多いデータ取得

AIなどの学習用データとして大量の情報が必要になった場合や、欲しい情報の分量が多くて人間が手作業で情報を抽出していると時間も人件費が嵩むといった場合には、自動で情報収集するためのWebスクレイピングのプログラムを仕込むと業務が効率化します。

Webスクレイピングの方法・ツール

スクレイピングの手法はいろいろありますが、一般的なWebプログラミング言語を使える方であれば、Webスクレイピングをすることは可能です。

自分でプログラムを組んでスクレイピングに挑戦してみたいという方は、以下でPythonというプログラミング言語を使った手法を紹介していますので、ご覧頂ければと思います。

詳細な技術面に興味が無いという方は読み飛ばしていただいて大丈夫です。

★リンク★

Webスクレイピングのツール・サービスなど

Webスクレイピングは最近ではシステム開発の会社に依頼しなくても自分でツールを使って行う事もできます。例えば有料のスクレイピングサービスに申し込んでみたり、以下のようなスクレイピングツールもありますので、ご自身で調べて実施する事も可能です。

http://jp.octoparse.com/

https://chrome.google.com/webstore/detail/scraper/mbigbapnjcgaffohmbkdlecaccepngjd?hl=ja

これらに関しては、技術面に無い人が取り組むことも可能ですが、ある程度HTTPなどの通信に関する知識がある状態でないと少し大変かもしれません。

Webスクレイピングの法的な問題

Webスクレイピングは有用な手法ではあるのですが、一歩使い方を間違えると問題になる事があります。

例えば数秒置きくらいのアクセスであれば、一般的には節度のあるアクセスですが、プログラムを誤って1秒間に何度もアクセスしてしまうような作りにしてしまうと、Dos攻撃というサーバに過度な負荷をかけるサイバー攻撃になりえます。

過去には、過度なスクレイピングによってサーバに負荷をかけてしまい、問題になったこともあります。そのため、TwitterなどのSNSやメルカリなどの特定のWebサービスでは、規約で明確にスクレイピングを禁止しているものもあります。

岡崎市立中央図書館事件

https://ja.wikipedia.org/wiki/%E5%B2%A1%E5%B4%8E%E5%B8%82%E7%AB%8B%E4%B8%AD%E5%A4%AE%E5%9B%B3%E6%9B%B8%E9%A4%A8%E4%BA%8B%E4%BB%B6

少し昔の事件ですが、岡崎市立中央図書館事件というWebスクレイピングを行った事でサーバがダウンし、サイバー攻撃では無いかと問題になった事件もありました。

上記の事件ではサーバ側が脆弱であったり警察の捜査にも問題があったため、Webスクレイピングだけで捕まったといった内容ではありません。しかし、うっかり手順を間違えてサーバに負荷をかけてしまったり、規約違反である場合もありますので、実施前にはよく確認する必要があります。

まとめ

今回は、Webサイトから任意のデータを自動収集する方法を紹介しました。Webスクレイピングは色んな所で利用されている非常に有用な手法です。

しかし、抽出元のサイトに大量アクセスをして負荷をかけてしまったり、迷惑の掛かる事は避けなければなりません。また、サービスの規約にWebスクレイピングや自動アクセスの禁止を謳っているものも少なくありませんので、事前に確認が必要です。

大手サービスにはAPIを提供しているところも多くありますので、まずはAPIが利用できないかを確認してからスクレイピングするようにしましょう。

自動アクセスが出来ないようにセキュリティを強化されているサービスもありますので、全てが可能なわけではありませんが、ログインが必要となるような管理画面でもログイン後の情報を収集する事も可能です。

何かお仕事のご依頼等ありましたら、以下よりご連絡ください。