【うぇぶすくれいぴんぐ】

Webスクレイピング とは?

最終更新:
💡 ページから、必要な情報を抽出する

Webページを取得して、必要な情報をプログラムで抽出する技術。クローラー・APIとの違い、取得条件とrobots.txtの役割を解説します。

📌 このページのポイント
Webスクレイピング:項目を取り出す取得方法・条件・アクセス負荷を確認公開と再利用の許可は別取得したページりんご 100円みかん 80円必要な項目商品名円りんご100みかん80抽出構造・単位・欠けを確認し、整理する取得元と時刻も記録動的な表示では取得方法が変わることも
商品名と価格を表へ抽出する架空例です。結果の欠けを正常な値として扱わず、構造の変更も確認します。公式APIは別の取得方法で、robots.txtだけで再利用の許可やアクセス権は決まりません。
ひよこ ひよこ
Webスクレイピングは、何をする?
ペンギン先生 ペンギン先生
Webページから必要な項目をプログラムで抜き出す。例えばページにある商品名と価格を取り出して、表へ整理する技術だ。技術としてできることと、そのサイトで取得・利用してよいことは分けて確認する。
ひよこ ひよこ
どうやって項目を取り出すの?
ペンギン先生 ペンギン先生
取得したHTMLを解析し、タグやCSSセレクターなどで対象を選ぶ方法がある。Scrapyは巡回と抽出に使えるツールの例だ。使う言語が必ずPythonというわけではなく、必要な機能と対象で選ぶよ。
ひよこ ひよこ
ブラウザーで見えるなら、HTMLにも全部ある?
ペンギン先生 ペンギン先生
JavaScriptで後から表示される内容などは、最初に受け取るHTMLにないこともある。ブラウザー操作を使う方法や、公式APIなど別の取得方法を検討する。ただし、ログインやアクセス制限を回避してよいという意味ではない。
ひよこ ひよこ
クローラーやAPIと何が違う?
ペンギン先生 ペンギン先生
クローラーはリンクなどをたどって巡回する役割。スクレイピングは内容の抽出に注目する言葉だ。APIは、提供者が定めた窓口と形式でデータを受け取る方法。APIにも利用条件や上限があり、どの方法でも確認が必要になる。
ひよこ ひよこ
robots.txtで許可なら、自由に使える?
ペンギン先生 ペンギン先生
robots.txtは、クローラーにアクセス先の規則を伝える仕組みだ。認証やアクセス制御の代わりではなく、著作権や再配布の許可を全部与えるものでもない。利用規約、取得する情報、使い方の条件も別に確認しよう。
ひよこ ひよこ
一度動けば、ずっと収集できる?
ペンギン先生 ペンギン先生
ページの構造や取得の条件が変わることがある。項目が見つからない、価格や単位を取り違える、アクセスが拒否される場合もある。頻度と同時接続を抑え、エラー時に連打せず、取得元・時刻・欠けを記録して結果を確認するんだ。
もっと詳しく知りたい人へ

情報解析の目的なら、著作物を何でも取得・公開できる?

一律には言えません。文化庁は第30条の4について、思想・感情の享受を目的としない利用を、必要と認められる限度で認める規定として説明しています。権利者の利益を不当に害する場合は対象外です。取得した記事を読ませる目的で再掲載することまで、情報解析という名前だけで許されるわけではありません。利用規約や個人情報なども別に確認します。

セレクターで項目が見つからないときは?

空の結果を、価格0や正常なデータとして扱わないようにします。Scrapyのget()は対象がない場合にNoneを返し、一覧の先頭を直接選ぶとIndexErrorになる例があります。想定する件数や必須項目を確認し、欠けや仕様変更を検知できるようにします。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Webスクレイピング」って出てきたら「Webページを取得して必要な情報を抽出する技術」と思えばだいたいOK!公開された情報でも、取得や再利用の条件を確認しよう。
📖 おまけ:英語の意味
「Web Scraping」 = Webから情報をかき集めること
💬 ページを巡回することと、その内容から項目を抜き出すことを分けて考えると理解しやすい言葉です。一つのツールが巡回と抽出の両方を担うこともあります。

参考資料

← 用語集にもどる