PythonでWebスクレイピング入門|BeautifulSoup&requests実践【2026年版】
「Webサイトのデータを自動で取得したい」
「Pythonでスクレイピングをやってみたいけど難しそう…」
そんな初心者の方に向けて、本記事ではPythonによるWebスクレイピングの基本をわかりやすく解説します。
実際のコード例を交えながら、最初の一歩を安心して踏み出せる構成にまとめています。
1. Webスクレイピングとは?
Webスクレイピングとは、プログラムを使ってWebページから情報を自動取得する技術です。
Pythonでは requests と BeautifulSoup を組み合わせることで、初心者でも簡単に実装できます。
- ECサイトの商品価格を収集
- ニュース記事を自動取得して保存
- 求人サイトから情報収集
2. 環境構築(必要ライブラリ)
以下の2つをインストールすればOKです。
pip install requests beautifulsoup4
👉 requests:ページを取得 👉 BeautifulSoup:HTMLを解析して必要部分を抽出
3. 基本コード例(ニュースタイトル取得)
まずは最もシンプルなスクレイピング例です。
import requests
from bs4 import BeautifulSoup
url = "https://example.com/news"
res = requests.get(url)
soup = BeautifulSoup(res.text, "html.parser")
titles = soup.find_all("h2")
for t in titles:
print(t.text)
👉 find_all() を使うことで、特定タグをまとめて取得できます。
まずは構造がシンプルなサイトで練習してみるのがおすすめです。
4. 実践:ECサイトの商品データを取得する
商品名と価格を取得する実践的なサンプルです。
import requests
from bs4 import BeautifulSoup
url = "https://example.com/shop"
res = requests.get(url)
soup = BeautifulSoup(res.text, "html.parser")
products = soup.find_all("div", class_="product")
for p in products:
name = p.find("h3").text
price = p.find("span", class_="price").text
print(name, price)
👉 HTML構造が理解できると、自由に必要な情報を抜き出せるようになります。
5. スクレイピング時の注意点(必ず知っておく)
- 利用規約(robots.txt)を確認する
- 連続アクセスしない(
time.sleep()で間隔を空ける) - APIが提供されている場合はAPIを使う
※悪質なスクレイピングはアクセス禁止や法的リスクが伴うため、 必ず「許可された範囲」で実践しましょう。
6. 応用:取得したデータをExcelに保存する
import pandas as pd
data = [
{"商品名": "A商品", "価格": 1200},
{"商品名": "B商品", "価格": 1500},
]
df = pd.DataFrame(data)
df.to_excel("products.xlsx", index=False)
print("Excelに保存しました!")
👉 スクレイピング+Excel出力は、業務自動化や副業案件で非常に需要が高い組み合わせです。
まとめ:スクレイピングはPython自動化の第一歩
Pythonのスクレイピングは、requests+BeautifulSoup を使えば初心者でも簡単に始められます。
ニュース取得、商品データ収集、Excelレポート化など応用範囲は広く、
副業・案件獲得にも直結するスキルです。
まずは小規模なサイトで練習し、徐々にステップアップしていきましょう。
