⏰ Pythonでスクレイピングを自動化!scheduleで定期実行する方法
手動でスクレイピングを実行するのが面倒になっていませんか? 毎日同じデータを更新したいなら、自動化が断然おすすめです!
この記事では、Pythonの scheduleライブラリ を使って、スクレイピングを「毎日・毎週・毎時間」など好きなタイミングで自動実行する方法を紹介します。
✅ 必要なライブラリをインストール
まずはPython環境に必要なライブラリをインストールします。
pip install requests beautifulsoup4 pandas schedule
これでスクレイピング(requests+BeautifulSoup)とデータ保存(pandas)、そして定期実行(schedule)がすべて使えるようになります。
🌐 1. スクレイピング処理を関数化する
まずは、前回の記事で作成したスクレイピング処理を関数にまとめましょう。
import requests
from bs4 import BeautifulSoup
import pandas as pd
def scrape_news():
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
data = []
articles = soup.find_all("a")
for a in articles[:10]:
title = a.text.strip()
link = a.get("href")
if title and link:
data.append({"タイトル": title, "リンク": link})
df = pd.DataFrame(data)
df.to_csv("news_data.csv", index=False, encoding="utf-8-sig")
print("データを更新しました!")
この関数を実行すると、ニュースタイトルとリンクを毎回 news_data.csv に保存します。
🕒 2. scheduleで定期実行を設定する
次に、scheduleを使って自動で上の関数を実行します。
import schedule
import time
# 毎日朝9時に実行
schedule.every().day.at("09:00").do(scrape_news)
# 10分ごとに実行(テスト用)
# schedule.every(10).minutes.do(scrape_news)
while True:
schedule.run_pending()
time.sleep(1)
このスクリプトを実行しておくだけで、指定した時刻に自動でスクレイピングが行われます。
🧩 3. よく使うスケジュール設定
scheduleはとても柔軟で、さまざまなスケジュールを設定できます。
| 実行タイミング | コード例 |
|---|---|
| 毎日午前9時 | schedule.every().day.at("09:00").do(scrape_news) |
| 1時間ごと | schedule.every(1).hours.do(scrape_news) |
| 10分ごと | schedule.every(10).minutes.do(scrape_news) |
| 毎週月曜10時 | schedule.every().monday.at("10:00").do(scrape_news) |
| 毎秒実行(テスト用) | schedule.every(1).seconds.do(scrape_news) |
💡 4. 常時稼働させるには?
このスクリプトを閉じてしまうと定期実行も止まります。 常時動かしたい場合は、次のような方法がおすすめです。
- ✅ ターミナルを開いたまま実行(テスト用途)
- 🖥️ Windowsなら「タスクスケジューラ」に登録
- 🐧 Mac/Linuxなら「cron」に登録
- ☁️ クラウド実行(Heroku, AWS Lambdaなど)
たとえばLinuxであれば、以下のようにcron設定が可能です。
crontab -e
次の行を追加します:
0 9 * * * /usr/bin/python3 /home/user/scraping_auto.py
これで毎日9時にスクリプトが自動実行されます。
⚠️ 5. スクレイピングの注意点
- サイトの利用規約で禁止されていないか必ず確認
- アクセス間隔を適切に保ち、サーバーに負担をかけない
- 取得するデータは公開情報に限定する
マナーを守ってこそ、スクレイピングを安全に活用できます。
🏁 まとめ
- BeautifulSoupでデータ取得
- pandasで整形・CSV保存
- scheduleで定期実行
この3ステップを組み合わせれば、完全自動でデータ収集システムを構築できます。 毎朝自動でニュースや株価データを更新することも可能です。
Pythonを使って、あなたの手作業を“自動化”に変えましょう!🚀
🧩 次のステップ
この記事が役に立ったら、ブックマーク&シェアをお願いします!
