定義
データスクレイピングとは、ウェブサイトやアプリの画面に表示された情報をソフトウェアが自動で読み取り、必要なデータだけを抽出・収集する技術のことです。人間がブラウザを開いて文字を1つずつコピーし、Excelに貼り付けるような作業を、ロボットが代わりにやってくれるイメージです。
人間のコピペ作業をわずか数秒で終わらせます
ネット通販サイト100店舗のスニーカーの価格を比較することを想像してみてください。人間が手作業で行うなら、サイトを1つずつ開いて商品名と価格を確認し、メモ帳に書き写さなければなりません。丸一日かかりますし、数値を書き間違えるミスも起きがちです。
データスクレイピングは、この退屈な作業をプログラムが電光石火のスピードで肩代わりします。プログラムがウェブページを裏側のコード形式でダウンロードし、価格や商品名が書かれている場所を特定します。そして、必要な情報だけをピンポイントで抜き出し、Excelファイルやデータベースへ綺麗に整理してくれます。
この技術は、複数のショッピングサイトの価格変動を監視したり、毎朝ニュースの見出しを自動で集約したりする際によく使われます。ただし、航空券の比較サイトのような大規模サービスでは、スクレイピングよりも提携を結んでAPI経由でデータを受け取るケースが一般的です。人間の目と手が行っていた「探して書き写す」作業を自動化した仕組みと言えます。
「ウェブクローリング」とはどう違うの?
データを集めるという点から、データスクレイピングとウェブクローリングはしばしば混同され、セットで語られます。しかし、この2つは目的と仕組みがはっきり異なります。
ウェブクローリングは、インターネットという広大な図書館を歩き回り、新しい本や書棚を見つけて全体マップ(地図)を作る作業です。GoogleやYahoo!のような検索エンジンが、ページ同士のリンクを次々とたどってウェブ全体を網羅的に探索する際に使われます。
一方でデータスクレイピングは、特定の本を開いてその中に書かれた特定の文章や数字だけをピンセットで抜き出す作業です。例えば、「さまざまなブログを巡回してURLを集めて回る」のがクローリングで、「そのブログの中から投稿者名とコメント数だけをかき集める」のがスクレイピングにあたります。
もう少し詳しく:守るべきルールとマナーがあります
データスクレイピングは非常に便利ですが、サイト運営者との間でトラブルの原因になることもあります。プログラムが1秒間に何千回もアクセスしてデータを吸い上げると、一般ユーザーが利用するサーバーに過度な負荷がかかり、ダウンしてしまう恐れがあるからです。
そのため、多くのウェブサイトでは「robots.txt(ロボット排除規約)」という表札を掲げ、「ここは収集しないでください」と意思表示をしています。ただしこれに強制力はないため、ルールを無視するプログラムも存在します。そこで、人間かロボットかを判別するクイズ(CAPTCHA)などを導入し、機械的なアクセスを遮断する対策も併用されています。
また、ネット上に公開されている情報であっても、著作権や個人情報が含まれている場合は法的な問題に発展するリスクがあります。そのため現在では、画面から無断で抽出するスクレイピングではなく、正規の手続きでデータをやり取りする公式窓口であるAPIの利用が推奨されています。
よくある誤解
ネット上で誰でも見られる公開情報なら、自由にスクレイピングして商用利用してもよい。
画面に表示されているからといって、無断収集や自由な利用が無条件に許されているわけではありません。サイトの利用規約や著作権法、個人情報保護法に抵触して法的トラブルになる可能性があります。また、相手のサーバーに過度な負荷をかけると、業務妨害などで民事・刑事上の法的責任を問われる恐れもあります。適法かどうかの判断はケースによって異なります。
日常で出会う場面
複数のショッピングサイトの価格変動を自動で監視する価格トラッキングツール
研究や分析のために、公開掲示板の投稿データを自動収集してテキストマイニングを行う作業
つまり ひとことで
データスクレイピングとは、ウェブ画面上の必要な情報だけをプログラムが自動で抜き出し、表やファイルに整理してくれるデータ収集技術です。