【業務自動化】チャプター4-2:静的ページをスクレイピングしよう

一つ前のページでは Webスクレイピングの基礎 について学習しました。
今回は 静的ページの情報収集 を体験しましょう。
Chapter1:PythonでExcelを操作しよう
Chapter2:PyInstallerで自動化ツールを(.exe)作ろう
Chapter3:便利な自動化ツールを5つ作ろう
Chapter4:Webスクレイピング入門
・Chapter4-1:Webスクレイピングとは何か
・Chapter4-2:静的ページをスクレイピングしよう ◁今回はここ
・Chapter4-3:動的ページをスクレイピングしよう
Chapter5:自動化ツールを作って稼ごう
業務で扱う情報の多くはインターネット上から入手できますが、毎日手作業でコピー&ペーストするのは非効率です。
Pythonを使えば、Webサイトから自動的にデータを収集し、Excelに整理して保存する仕組みを簡単に作れます。
この記事では 静的ページのスクレイピング をテーマに、Webサイトに表示されているニュース見出しなどを自動で取得し、Excelにまとめる方法を解説します。
静的ページは仕組みがシンプルで初心者でも扱いやすいため、スクレイピングの第一歩として最適です。
本記事は前半は無料。後半は会員向けの有料記事です。
業務自動化の全ての記事セットが今だけ 2980円 ⇒ 1980円。
どこよりも安いこの教材を、是非ご活用下さい^^
- もくじ
-
青字は無料部分。白字は会員向け部分です。
- 静的ページとは|Webスクレイピングで扱いやすいページの種類
- requestsとBeautifulSoup|スクレイピングの基本ライブラリ
- requestsの代表的な関数とプロパティ
- BeautifulSoupの代表的な関数とメソッド
- サンプルスクリプトの紹介|静的ページから見出しとリンクを抽出
- このコードでできること|ニュース見出しとリンクの抽出・ Excel出力の流れ
- サンプルスクリプト全文
- サンプルスクリプトの解説|処理の分解とポイント
- まとめ|静的ページとrequests・BeautifulSoupの基本を押さえよう
どこよりも安いこの教材を、是非ご活用下さい。
静的ページとは|Webスクレイピングで扱いやすいページの種類
Webスクレイピングを行う上で最初に押さえておきたいのが、Webページの種類です。
大きく分けると「静的ページ」と「動的ページ」がありますが、静的ページはその名の通り内容が固定されており、HTMLを取得すればそのまま必要な情報が含まれています。
例えば、企業の会社概要ページや記事本文など、ページを開くたびに内容が変わらないものは静的ページにあたります。
この特徴により、PythonでアクセスしてHTMLを解析するだけで情報を抜き出せるため、初心者がスクレイピングを学ぶ入り口として適しています。


requestsとBeautifulSoup|スクレイピングの基本ライブラリ
Webスクレイピングで静的ページを扱う場合、基本となるのが requests と BeautifulSoup という2つのライブラリです。
- requests はWebサイトにアクセスしてHTMLデータを取得する役割を持ちます。
- BeautifulSoup は取得したHTMLを解析し、欲しい情報だけを抜き出すためのライブラリです。
この2つを組み合わせることで「ページにアクセスしてデータを持ち帰り、その中から必要な部分を切り出す」という一連の流れをシンプルに実現できます。
特に静的ページのスクレイピングでは、この組み合わせが最も基本的で効率的な方法となります。
これらを使用するには事前にインストールしておく必要があります。
インストール方法は 一つ前の記事 で紹介していますので、まだ準備ができていない場合はそちらを参照してください。
requestsの代表的な関数とプロパティ
requestsはWebページにアクセスしてデータを取得するライブラリです。
主に以下の機能を押さえておくと十分活用できます。
ここで全て暗記するのではなく、必要に応じてここに戻ってきて確認するようにしましょう。
| 関数・プロパティ | 説明 |
|---|---|
requests.get(url, params=None, headers=None) | 指定したURLにアクセスしてHTMLを取得する。 クエリやヘッダーを指定可能。 |
requests.post(url, data=None, json=None) | フォームデータやJSONを送信する際に利用。 ログインや検索条件送信に使う。 |
response.status_code | サーバーからのステータスコードを確認。 200=成功、404=ページなし等。 |
response.text | ページのHTMLを文字列として取得。 BeautifulSoupに渡して解析する。 |
BeautifulSoupの代表的な関数とメソッド
BeautifulSoupはHTMLを解析し、欲しい情報を抽出するライブラリです。
以下のようなメソッドがよく使われます。
| 関数・メソッド | 説明 |
|---|---|
BeautifulSoup(html, "html.parser") | HTML文字列を解析して扱いやすい形に変換。 |
soup.find(tag, attrs) | 条件に合う最初のタグを1つ取得。 例: soup.find("h1")。 |
soup.find_all(tag, attrs) | 条件に合うタグをすべてリストで取得。 ニュースやリンク一覧の収集に便利。 |
.get_text(strip=True) | タグの中のテキストを取得。 余計な空白を除去可能。 |
.get("href") | <a> タグのリンク先URLを取得。記事タイトルとURLをセットで収集可能。 |
サンプルスクリプトの紹介|静的ページから見出しとリンクを抽出
ここからは実際に動作するPythonスクリプトを例に、静的ページのスクレイピングを体験していきます。
サンプルコードではニュースサイトにアクセスし、記事の見出しとリンクを収集してExcelに保存する流れを実装しています。
「requests」でWebページのHTMLを取得し、「BeautifulSoup」でニュース見出しとリンクを抽出し、最後に「openpyxl」でExcelに書き込む、という一連の流れを体験できる構成になっています。
このコードでできること|ニュース見出しとリンクの抽出・
Excel出力の流れ
サンプルスクリプトを実行すると、次のような処理が自動で行われます。
- ニュースサイト(例:Yahoo!ニュース)のトップページにアクセスする
- ページ内の見出しテキストとリンクURLを収集する
- 収集したデータをExcelファイル(
news_headlines.xlsx)に一覧として保存する - 保存が完了したらメッセージで完了通知を表示する
つまり、これまで手作業でニュースサイトを開いてコピーしていた作業を、Pythonに任せて一括で自動化できるようになります。
日々の情報収集やレポート作成の効率を大幅に向上させられるのがポイントです。
すでに購入済みの方はこちら


