Pythonで宅配ボックス&電動自転車残数を自動チェック!Webスクレイピング入門


いちいちウェブにアクセスして確認するのも面倒なので、フルタイムシステム(貸出自転車/宅配ボックス等)のリアルタイム在庫数チェックするpythonスクリプトを作成してみます。
事前準備と法的配慮
-
Python環境の構築 (
requests
とBeautifulSoup4
をインストール) -
robots.txt と meta robotsタグ や規約を事前にチェックし、スクレイピング可否を確認済
ここ重要 -
アクセス間隔を空けて、負荷を抑える
スクリプト(残台数の取得)
import requests from bs4 import BeautifulSoup def fetch_remaining_bikes(url): resp = requests.get(url) resp.raise_for_status() # エラーチェック soup = BeautifulSoup(resp.text, "html.parser") # <td class="count">5</td> のような構造を探す # 施設が複数ある場合には find_all td = soup.find("td", class_="count") if not td: raise ValueError("残り台数の要素が見つかりませんでした") count_text = td.get_text(strip=True) try: return int(count_text) except ValueError: raise ValueError(f"数値変換に失敗しました: {count_text!r}") if __name__ == "__main__": url = "https://f-cs.jp/wcsv2/index.php?id=<宅配ボックスID>" try: remaining = fetch_remaining_bikes(url) print(f"残り電動自転車台数: {remaining} 台") except Exception as e: print(f"エラーが発生しました: {e}")
-
requests
+BeautifulSoup
-
HTML構造に依存するため、スクレイプ対象のクラス名などは要確認
- 実行結果例
残り電動自転車台数:7台
まとめ
-
robots.txt・metaタグでアクセス許可を確認
-
リクエストヘッダーにUser‑Agentを明記
-
適度にリクエスト間隔をあけ、過負荷回避