PythonでWebスクレイピング入門|BeautifulSoup&requests実践【2026年版】

「Webサイトのデータを自動で取得したい」 「Pythonでスクレイピングをやってみたいけど難しそう…」 そんな初心者の方に向けて、本記事ではPythonによるWebスクレイピングの基本をわかりやすく解説します。
実際のコード例を交えながら、最初の一歩を安心して踏み出せる構成にまとめています。

1. Webスクレイピングとは?

Webスクレイピングとは、プログラムを使ってWebページから情報を自動取得する技術です。
Pythonでは requestsBeautifulSoup を組み合わせることで、初心者でも簡単に実装できます。

  • 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レポート化など応用範囲は広く、 副業・案件獲得にも直結するスキルです。
まずは小規模なサイトで練習し、徐々にステップアップしていきましょう。

👉 関連記事: Excel業務自動化ガイド

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です