pandas と組み合わせてデータをCSV保存


📊 Pythonスクレイピング応用編:BeautifulSoup+pandasでCSV保存!

前回の記事では、BeautifulSoup を使ってWebページからデータを取得する方法を紹介しました。
今回はその続きをテーマに、取得したデータを pandas と組み合わせてCSVファイルとして保存する方法を解説します。

このステップを覚えると、「データを取るだけ」から「蓄積・分析」へと一歩進むことができます!


✅ 必要なライブラリのインストール

まずは必要なライブラリをインストールします。

pip install requests beautifulsoup4 pandas

pandasは表形式データの処理に最適なライブラリです。


🌐 1. Webページを取得する

まずは前回と同じようにWebページを取得します。

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

📰 2. タイトルとリンクを取得

次に、Webページ内のニュースタイトルとリンクを抽出してみましょう。

articles = soup.find_all("a")

data = []
for a in articles[:10]:
    title = a.text.strip()
    link = a.get("href")
    if title and link:
        data.append({"タイトル": title, "リンク": link})

print(data[:3])  # 先頭3件を確認

ここまでで、ニュースタイトルとURLを辞書形式のリストとして取得できました。


💾 3. pandasでCSVに保存

次に、pandasを使ってこのデータをCSVファイルに保存します。

import pandas as pd

df = pd.DataFrame(data)
df.to_csv("news_data.csv", index=False, encoding="utf-8-sig")

print("CSVファイルを保存しました!")

このコードを実行すると、同じフォルダに news_data.csv が作成されます。
Excelなどで開くと、ニュースタイトルとリンクが表形式で表示されます。


📂 4. 出力されたCSVの中身(例)

タイトル リンク
Example Domain https://example.com
More Information https://example.com/info
Contact Us https://example.com/contact

このように、取得したデータをきれいに整理・保存できます。


⚙️ 5. 応用:毎日自動でデータを更新

定期的にスクレイピングしてデータを更新したい場合は、Pythonの schedule ライブラリを使うのが便利です。

pip install schedule
import schedule
import time

def job():
    # 上で書いたスクレイピング処理をここに入れる
    print("データ更新完了!")

schedule.every().day.at("09:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

これで、毎日午前9時にデータを自動収集できます。


🏁 まとめ

  • BeautifulSoupでHTMLを解析
  • pandasで表形式データに整形
  • CSV形式で保存して再利用

この流れをマスターすれば、ニュースサイトや商品情報、株価データなどを自動で収集し、Excel感覚で管理できます。

データを“取る”から“活かす”へ — Pythonであなたもデータ収集の達人に!


🧩 次のステップ

  • BeautifulSoup+Seleniumで動的ページもスクレイピング
  • GoogleスプレッドシートAPIと連携してクラウド保存
  • matplotlibplotlyでグラフ可視化

この記事が役立ったら、ブックマーク&シェアをお願いします!

タイトルとURLをコピーしました