【業務自動化】Chapter4-1:Pythonで始めるWebスクレイピング入門

ながみえ

一つ前のチャプターでは 便利な自動化ツールを5つ 作成しました。

今回からは Webスクレイピング について学習していきましょう。

Chapter1:PythonによるExcel自動化の基本を身につけよう
Chapter2:自動化ツールを.exe化して配布しよう
Chapter3:現場で使える便利な自動化ツールを4つ作ろう
Chapter4:Webスクレイピングでデータを自動で集めよう
 ・Chapter4-1:Webスクレイピングとは何か ◁今回はここ
 ・Chapter4-2:静的ページをスクレイピングしよう
 ・Chapter4-3:動的ページをスクレイピングしよう
Chapter5:自動化ツールを作ってお金を稼ごう

日々の業務の中で「毎日同じ情報をインターネットから探してコピーする」という作業に時間を取られていませんか?

Webスクレイピング は、Webサイト上の情報を自動的に収集し、Excelなどの形式で整理できる技術です。

手作業の情報収集を効率化し、ミスを減らしながら正確なデータを扱えるようになるため、業務自動化の第一歩として多くの分野で活用されています。

この記事では、Webスクレイピングの基本的な仕組みや使い道、関連するルールやマナーについて理解することを目標とします。

まずは「そもそもWebスクレイピングとは何か」を明確に理解していきましょう。

<<前のページ

業務自動化の記事一覧

次のページ>>

Webスクレイピングとは|情報収集を自動化する仕組み

Webスクレイピングとは、Webサイトから必要な情報を自動的に取得・抽出する技術のことを指します。

ニュース記事の見出し、商品データ、株価や天気の情報など、普段人間がブラウザで確認してコピーするデータを、プログラムに任せて自動的に収集できるのが特徴です。

この技術を使うことで、人が手作業で行っていた「Web上の情報収集」を大幅に効率化できます。

たとえば定期的に市場価格を調べてExcelにまとめる作業や、最新のニュースを一覧化するといった処理を、自動で実行できるようになります。

あわせて読みたい
openpyxl使える関数・メソッド・クラス一覧【Excel自動化の基本リファレンス】
openpyxl使える関数・メソッド・クラス一覧【Excel自動化の基本リファレンス】
【Python】勉強猫がノートパソコンを前にして学習を始める様子。記事内の学習スタート用イラスト

Webスクレイピングの意味と活用例

Webスクレイピングは単なる情報収集の自動化にとどまらず、業務や研究の現場で幅広く活用されています。

基本的な意味としては「人間がブラウザで目視してコピーする作業を、プログラムで再現すること」です。

そのため一度仕組みを作ってしまえば、繰り返しの作業を効率化し、正確性を維持したまま情報を集められます。

実際の活用例としては次のようなものがあります。

  • ニュース収集:複数のニュースサイトから見出しを集め、Excelにまとめる。
  • マーケティング調査:ECサイトの商品価格やレビューを収集し、競合分析に利用する。
  • 研究データ収集:公開データベースや論文情報を取得して、分析に活用する。
  • 日常業務の自動化:天気予報や株価情報を定期的に取得し、レポートを自動更新する。

このようにWebスクレイピングは「情報の収集を自動化し、意思決定や分析を支援する技術」として実務に役立ちます。

Pythonと組み合わせれば、初心者でも比較的簡単に取り組める点も魅力です。

スクレイピングとAPIの違い|取得方法・制約・向き不向き

Webスクレイピングとよく比較される技術に API(Application Programming Interface) があります。

両者は「インターネットから情報を取得する」という点では同じですが、仕組みと利用方法に違いがあります。

API はサービス提供者が公式に用意した「データの入り口」です。

たとえば天気予報サイトやニュースサイトの一部は、専用のAPIを公開しており、そこから直接データを取得できます。

APIを利用すれば、整った形式(JSONやXMLなど)でデータを受け取れるため、効率的かつ安定して情報を扱えるのが特徴です。

一方で Webスクレイピング は、ブラウザに表示されているページのHTMLを解析して情報を抜き出します。

公式のAPIが提供されていない場合でも利用できますが、サイトの構造が変わるとスクリプトが動かなくなるリスクがあります。また、過剰なアクセスはサーバーに負担をかけるため注意が必要です。

  • API:公式に提供される窓口。安定性が高く、整形済みデータを扱える。
  • Webスクレイピング:ページ解析による取得方法。自由度は高いが、サイト依存のリスクがある。

この違いを理解しておくと、「スクレイピングで情報を取るべきか、それともAPIを探すべきか」という判断がスムーズにできるようになります。

静的ページと動的ページの違い

Webスクレイピングを実践するうえで知っておきたいのが、Webページには 静的ページ動的ページ の2種類があるということです。

ページの仕組みによって情報の取得方法が変わるため、ここを理解しておくことが重要です。

静的ページとは

静的ページ とは、サーバーから送られてきたHTMLがそのままブラウザに表示される仕組みのページを指します。

ページの内容は基本的に固定されており、HTMLソースを取得して解析するだけで必要な情報を取り出せます。

会社概要ページやシンプルな記事ページなどは、このタイプにあたります。

動的ページとは

動的ページ は、JavaScriptを使ってページ読み込み後にデータを生成・表示する仕組みを持っています。

ニュースサイトの最新記事欄や、ECサイトの商品一覧など、ユーザー操作や追加読み込みによって情報が変化するケースが典型です。

この場合、単純にHTMLを取得しても欲しい情報が含まれていないことがあります。

動的ページを扱う場合は、JavaScriptを実行できる SeleniumPlaywright などのツールを使う必要があります。

どちらのページなのかを見極めて、適切な技術を選ぶことが、効率的で正確なスクレイピングにつながります。

本サイトでは、次のChapter4-2では静的ページの、Chapter4-3では動的ページのWebスクレイピングを体験します。

【Python】勉強猫がノートパソコンを見ながら考え込む様子。記事内の休憩用イラスト

Webスクレイピングのルールとマナー|セキュリティ・法的配慮の基本

Webスクレイピングは非常に便利な技術ですが、正しい知識を持たずに使うとトラブルや違法行為につながる可能性があります。

業務自動化の一環として安心して利用するために、必ず守るべきルールやマナーを理解しておきましょう。

利用規約とrobots.txtの確認|許可範囲と禁止事項を理解する

まず最初に確認すべきなのは、対象サイトの 利用規約 です。

多くのWebサイトでは「スクレイピングを禁止」または「特定条件下でのみ許可」と明記している場合があります。規約違反は法的リスクにつながるため、必ずチェックしましょう。

また、Webサイトのルートディレクトリに置かれる robots.txt ファイルには、クローラーがアクセスしてよいページが定義されています。

技術的な制約ではなく「マナー的な指標」ですが、これを守ることは大切です。

サーバー負荷への配慮

短時間に大量のアクセスを行うと、対象サイトに過剰な負荷をかけることになります。

これは迷惑行為にあたり、最悪の場合はアクセス制限や法的対応を受ける可能性があります。

プログラムには アクセス間隔を空ける(スリープを挟む) といった配慮が必要です。

個人情報・著作権への配慮

スクレイピングによって得られた情報の中には、 個人情報 や 著作権で保護されたデータ が含まれる場合があります。

こうした情報を無断で利用・公開すると、法的問題に発展しかねません。

自分の利用目的が適切かどうかを常に意識することが重要です。

会社の業務に導入する場合は、必ず社内の法務・コンプライアンス担当に確認しましょう。

スクレイピングは便利ですが、法的リスクを回避する体制を整えておくことが、安心して活用する第一歩です。

【Python】勉強猫がコーヒーを片手にリラックスしている様子。記事内の休憩用イラスト

Webスクレイピングの準備|Python環境・主要ライブラリの役割

実際にWebスクレイピングを始めるには、Pythonで利用できる便利なライブラリを導入しておく必要があります。

スクレイピングでは大きく分けて以下の3種類のツールを使います。

  1. requests:WebページのHTMLを取得するためのライブラリ
  2. BeautifulSoup:取得したHTMLを解析し、欲しい情報を取り出すためのライブラリ
  3. Selenium:動的ページやログインが必要なサイトにアクセスするための自動操作ツール

次のチャプターに進む前に、下記を読んでインストールしておきましょう。

なお、次のチャプターから実際にWebスクレイピングを行うにあたり、openpyxl や pathlibTkinter などのライブラリも引き続き使用します。

これらの解説は過去の記事を参照してください。

requests|HTTPリクエストでHTMLを取得する基本ライブラリ

requests は、PythonでWebページにアクセスしてHTMLデータを取得するためのライブラリです。

最も基本的で、静的なページを扱う場合にはまず最初に使うことになるでしょう。

例えば、ブラウザで開いているWebサイトをそのままPythonから取得するイメージです。

取得したHTMLはそのままでは人間にとって読みづらいですが、後で紹介する BeautifulSoup を使うことで必要な部分を抽出できるようになります。

インストールは以下のように行います。

pip install requests

BeautifulSoup|HTMLを解析して必要な情報を抽出する

BeautifulSoup は、取得したHTMLの中から特定の情報を抜き出すためのライブラリです。

WebページのHTMLはタグが複雑に入れ子になっていることが多いため、そのままでは必要な情報を探しづらいですが、BeautifulSoupを使うと「見出しタグだけ取り出す」「リンクのURLだけ集める」といった処理を簡単に書けるようになります。

インストールは以下のコマンドで行います。

pip install beautifulsoup4

Selenium|動的ページ操作・ログイン・スクロールの自動化

Selenium は、実際にブラウザを自動操作してWebページにアクセスし、情報を取得できるツールです。

JavaScriptで生成される動的ページや、ログイン後でないと閲覧できないデータなど、requestsやBeautifulSoupだけでは対応できないケースに有効です。

Seleniumを使うと「ページを開く」「ボタンをクリックする」「入力フォームに文字を入れる」といった操作をPythonから自動化できます。

これにより、人間がブラウザで行う作業をそのままプログラムに任せることが可能になります。

インストールは以下のコマンドで行います。

pip install selenium

利用するには、Seleniumが操作するための WebDriver(ChromeやEdgeなどのブラウザ専用ドライバ)が必要です。

例えばGoogle Chromeを使う場合は「ChromeDriver」をダウンロードして環境に追加します。

まとめ|Pythonで始めるWebスクレイピング

ここまで、Webスクレイピングの基本的な考え方と、実際に利用する主要なライブラリについて解説しました。

Webスクレイピングは一見難しそうに感じるかもしれませんが、基本を理解すればシンプルに始められる技術です。

まずは静的なページを対象に小さなスクリプトを書き、徐々に応用へ広げていくとスムーズに習得できます。

さっそく次のチャプターから実際に体験していきましょう。

もっと分かりやすい学習サイトにするために

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいExcel自動化学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

業務自動化の記事一覧

次のページ>>

FAQ|Webスクレイピングでよくある質問

Q
Q1. PythonのWebスクレイピングは初心者でもできますか?

はい、可能です。Pythonには requestsBeautifulSoup といった扱いやすいライブラリがあり、数行のコードでWebページから情報を取得できます。
最初はニュース記事の見出しを集めるなど、シンプルな例から始めるのがおすすめです。

Q
Q2. Webスクレイピングは違法になりませんか?

Webスクレイピング自体は違法ではありません。
ただし、対象サイトの 利用規約やrobots.txt を確認し、サーバーに負担をかけないよう配慮する必要があります。
また、取得したデータに個人情報や著作権保護された内容が含まれている場合、それを無断利用すると法的問題になる可能性があります。
業務で利用する際は、必ず社内や法務部に確認しましょう。

Q
Q3. WebスクレイピングとAPIのどちらを使えばいいですか?

基本的には APIが公開されている場合はAPIを利用するのが最優先 です。
APIは整った形式でデータを提供してくれるため、安定性が高く効率的です。
スクレイピングはAPIが存在しない場合や、Webページにしか情報が掲載されていない場合の選択肢として考えるとよいでしょう。

記事URLをコピーしました