【うぇぶすくれいぴんぐ】
Webスクレイピング とは?
最終更新:
💡 ページから、必要な情報を抽出する
Webページを取得して、必要な情報をプログラムで抽出する技術。クローラー・APIとの違い、取得条件とrobots.txtの役割を解説します。
📌 このページのポイント
- 取得したWebページから、必要なデータを抽出する
- 巡回するクローラーと、内容を抽出する役割を区別する
- ページの構造変更や、動的な表示で取得方法が変わる
- 取得と再利用の条件、個人情報、アクセスの負荷を確認する
Webスクレイピングは、何をする?
Webページから必要な項目をプログラムで抜き出す。例えばページにある商品名と価格を取り出して、表へ整理する技術だ。技術としてできることと、そのサイトで取得・利用してよいことは分けて確認する。
どうやって項目を取り出すの?
ブラウザーで見えるなら、HTMLにも全部ある?
JavaScriptで後から表示される内容などは、最初に受け取るHTMLにないこともある。ブラウザー操作を使う方法や、公式APIなど別の取得方法を検討する。ただし、ログインやアクセス制限を回避してよいという意味ではない。
robots.txtで許可なら、自由に使える?
robots.txtは、クローラーにアクセス先の規則を伝える仕組みだ。認証やアクセス制御の代わりではなく、著作権や再配布の許可を全部与えるものでもない。利用規約、取得する情報、使い方の条件も別に確認しよう。
一度動けば、ずっと収集できる?
ページの構造や取得の条件が変わることがある。項目が見つからない、価格や単位を取り違える、アクセスが拒否される場合もある。頻度と同時接続を抑え、エラー時に連打せず、取得元・時刻・欠けを記録して結果を確認するんだ。
もっと詳しく知りたい人へ
情報解析の目的なら、著作物を何でも取得・公開できる?
一律には言えません。文化庁は第30条の4について、思想・感情の享受を目的としない利用を、必要と認められる限度で認める規定として説明しています。権利者の利益を不当に害する場合は対象外です。取得した記事を読ませる目的で再掲載することまで、情報解析という名前だけで許されるわけではありません。利用規約や個人情報なども別に確認します。
セレクターで項目が見つからないときは?
空の結果を、価格0や正常なデータとして扱わないようにします。Scrapyのget()は対象がない場合にNoneを返し、一覧の先頭を直接選ぶとIndexErrorになる例があります。想定する件数や必須項目を確認し、欠けや仕様変更を検知できるようにします。
まとめ:ざっくりこれだけ覚えればOK!
「Webスクレイピング」って出てきたら「Webページを取得して必要な情報を抽出する技術」と思えばだいたいOK!公開された情報でも、取得や再利用の条件を確認しよう。
📖 おまけ:英語の意味
「Web Scraping」 = Webから情報をかき集めること
💬 ページを巡回することと、その内容から項目を抜き出すことを分けて考えると理解しやすい言葉です。一つのツールが巡回と抽出の両方を担うこともあります。