スクレイピングとは、Webページに表示されている情報の中から、必要なデータだけを機械的に抜き出して取得する技術のことです。「scrape(削り取る)」という英単語のとおり、ページ全体から欲しい部分だけを削り出すイメージの処理を指します。
現実世界に例えると、新聞の束から特定の記事だけを切り抜いてスクラップする作業のようなものです。紙面全体をそのまま保管するのではなく、必要な部分だけを取り出して手元にまとめます。
基本的な仕組み
スクレイピングでは、まずプログラムがWebページのHTMLを取得します。次に、そのHTMLの中から「この見出しタグの中の文字」「この表の2列目」といった具合に、目印を手がかりに目的のデータを探し出して抜き出します。人が画面を見てコピーする作業を、プログラムが自動で行っていると考えると分かりやすくなります。
クローラーとの違い
よく似た言葉に「クローラー」がありますが、役割が異なります。クローラーはリンクをたどってページを巡回し、集めてくるのが仕事です。これに対しスクレイピングは、集めてきたページから必要なデータを抽出する工程を指します。実際の処理では、この2つを組み合わせて使うことがよくあります。
主な活用場面
競合他社の商品価格を定期的に調べる、大量の公開データを研究のために集める、複数のサイトに散らばった情報を1つの表にまとめるといった場面で使われています。手作業では何時間もかかる収集作業を、短時間で終えられる点が大きな利点です。
APIがあるならAPIを使う
サイトによっては、データを取得するための正式な窓口として「API」を用意していることがあります。APIが提供されている場合は、スクレイピングよりもAPIを優先して使うのが原則です。提供者が想定した方法であり、データの形式も整っているため、相手にも自分にも負担が少なくて済みます。
守るべきルールと注意点
| 確認する項目 | 内容 | 確認する場所 |
|---|---|---|
| 利用規約 | 自動収集を禁止していないか | サイトの規約ページ |
| robots.txt | 収集を拒否している範囲はどこか | サイト直下のファイル |
| アクセス間隔 | 短時間に大量の要求を送っていないか | 自分のプログラムの設定 |
サーバーへの負荷に配慮する
プログラムは人と違い、1秒間に何十回もアクセスできてしまいます。これを無配慮に行うと、相手のサーバーに大きな負担をかけ、結果的に攻撃と見なされてしまうおそれがあります。1回ごとに数秒待つなど、間隔を空けた設計が欠かせません。
取得したデータの扱い
Webページに掲載されている文章や画像には、多くの場合著作権があります。取得したデータをそのまま自分のサイトに掲載したり、再配布したりすることは、権利の侵害にあたる可能性があります。あくまで分析や個人的な利用の範囲にとどめるのが基本です。
よく使われるツール
プログラミング言語のPythonがよく使われており、HTMLを解析するためのライブラリと組み合わせて実装されます。近年ではプログラムを書かずに画面操作だけで設定できるツールも登場しており、専門知識がなくても扱える範囲が広がっています。

コメント