スクレイピング
Web ページから必要な情報を自動で抽出する技術。データ収集を効率化する
スクレイピングとは
スクレイピング (Web スクレイピング) は、Web ページから必要な情報を自動で抽出する技術だ。人がブラウザで見て手作業でコピーする代わりに、プログラムがページの内容を取得し、目的のデータだけを取り出す。価格調査、ニュース収集、研究用のデータ収集など、Web 上に散らばる情報を効率的に集める手段として使われる。
基本的な流れ
| 手順 | 内容 |
|---|---|
| 取得 | 対象ページの HTML を取り込む |
| 解析 | HTML の構造から目的の要素を特定 |
| 抽出 | テキストや属性を取り出す |
| 保存 | データを表やファイルに整形 |
Python では、ページ取得と解析を支援するライブラリが充実しており、スクレイピングの定番言語になっている。
ただし、この 4 手順のうち「取得」でつまずくことが多い。画面を JavaScript が組み立てる作りのサイトでは、取得した HTML に骨組みしか入っておらず、目的のテキストがどこにもない。この場合の道は 2 つで、ブラウザを自動操作して描画後の状態を読むか、その画面が裏で呼んでいるデータの応答を直接受け取るかだ。後者の方が処理は軽く壊れにくいが、どちらも相手の作りに依存する。
解析の側は、目的の要素を指す条件が相手の HTML 構造に依存するという弱さを持つ。デザイン変更で目印が変われば、エラーも出ないまま空のデータを集め続ける。件数がゼロや想定外なら止まる、という確認を組み込んでおかないと、壊れたことに気づくのが数週間後になる。
API との使い分け
データを提供する公式の API がある場合は、スクレイピングより API を使う方が望ましい。API は構造化されたデータを安定して提供し、提供側も想定した使い方だからだ。スクレイピングは、API が用意されていない情報を取得する手段として位置づけられる。まず API の有無を確認するのが定石になる。
重要な注意点 (法と倫理)
スクレイピングは強力だが、無制限に行ってよいわけではない。多くのサイトは利用規約でスクレイピングを禁止・制限しており、これに反する取得は規約違反になりうる。また、短時間に大量アクセスするとサーバーに負荷をかけ、業務妨害とみなされる恐れがある。
判断材料としてまず見るのが robots.txt だ。これは 1994 年に Martijn Koster が定めた取り決めで、2022 年 9 月に RFC 9309 として標準化されている。中身は利用者名の指定と許可・不許可の行で、サイト側が「自動で来る側に守ってほしい」と表明する仕組みにすぎない。取得を技術的に止めるものでも、それ自体が法的な効力を持つものでもない。標準にアクセス間隔を指定する項目は含まれないので、どれくらいの間を空けるかは取得する側が決めるしかない。
法の側は、取得と利用を分けて考える必要がある。日本の著作権法第 30 条の 4 は、表現された思想や感情を自ら味わったり他人に味わわせたりする目的でない利用について、必要と認められる限度で認めており、第 2 号に情報解析のための利用を挙げている。ただし著作権者の利益を不当に害する場合は除かれる。つまり集めて解析することと、集めた文章や画像をそのまま自分のサイトに出すことは、まったく別の問題として扱われる。個人情報が混じる場合や利用規約に基づく請求は、著作権とはさらに別の筋の話になる。
実務としては、アクセス間隔と 1 日の取得件数を先に決め、取得元の URL と取得日時を保存し、同じデータを二度取りに行かない作りにしておく。ここまで用意しておけば、後から相手方に説明できる形が残る。
学習には関連書籍が役立つ。
この記事は役に立ちましたか?
関連用語
関連する記事
データベース本ガイド - SQL から設計まで学べる技術書の選び方
データベースの基礎から設計、パフォーマンスチューニングまで学べる技術書の選び方と学習順序を紹介します。
Web デザイン本ガイド - HTML/CSS、Figma、Photoshop を学ぶ順番
Web デザインを独学する本の選び方を「コーディング、ツール、デザイン原則」の 3 本柱で整理。HTML/CSS の入門書、Figma と Photoshop の教本、レイアウトと配色の定番書を、2026 年 8 月時点の収載書から学ぶ順番つきで解説します。
本についてくるダウンロード素材を使い倒す
プログラミングの本には、サンプルコードや練習用データのダウンロード特典がついていることがあります。素材の探し方と、完成版コードの使い方を解説します。