🐍
Python + BeautifulSoupで千葉県の感染者数を取得してみた【スクレイピング入門】
はじめに
この記事では、Pythonを使って千葉県の公式サイトから新型コロナ感染者数を自動取得する方法を紹介します。
スクレイピングの基本(HTML取得 → パース → データ抽出)を、初心者向けに解説します。
使用するライブラリ
以下のライブラリを使います。
- requests:WebページのHTMLを取得
- BeautifulSoup:HTMLを解析し、欲しい部分を抽出
pip install requests beautifulsoup4
サンプルコード
import requests
from bs4 import BeautifulSoup
# 千葉県のコロナ情報ページURL
url = "https://www.pref.chiba.lg.jp/shippei/press/2020/ncov-index.html"
# HTMLを取得
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# 感染者数を含む要素を探す
element = soup.find("div", class_="h3") # 実際の構造に合わせて調整
print("感染者数:", element.text.strip())
コードの解説
- requests.get() でWebページのHTMLを取得
- BeautifulSoup でHTMLを構造化して解析
- .find() で特定のタグやクラスを指定し、該当部分を抽出
- .text.strip() で余分な空白を除去して整形
注意点
- スクレイピング対象のページ構造が変わると動かなくなることがあります
- 公開データの扱いは利用規約を必ず確認しましょう
改良案
- 定期的に自動取得する(cronやTask Schedulerで)
- CSVやJSON形式で保存
- グラフ表示(matplotlibやpandasを使用)
おわりに
ニュースで見ている数字を自分で取ってみると、データの裏側が少し見えてきます。
スクレイピングはデータ分析の第一歩としておすすめです。
関連記事
作ったきっかけや背景ストーリーは、noteの記事でまとめています👇
Pythonで千葉県の感染者数をスクレイピングしてみた話
Discussion