株式会社mou AI × 業務自動化の開発チームWORKS

制作サンプル(取得が許された練習用サイト books.toscrape.com を相手に作った見本です)

Python:定時に集める → データベースに貯める → 前回との差だけ出す

コード:shuushuu.py(約60行・標準ライブラリだけ・Windows のタスクスケジューラ/cron から定時に呼ぶ形) / 出た表:sa-mihon.csv(Excel でそのまま開けます)

作りの要点

  1. 一覧を取り、SQLite に「初めて見た日・最後に見た日」と一緒に貯めます
  2. 前回の値と比べ、新しく出た物・値が変わった物だけを CSV に出します(毎回全部を見直す手間をなくします)
  3. 取れない時は間を空けて3回まで取り直し、それでも駄目なら理由をログに残して止まります(黙って空の結果を出しません)
  4. 相手のサーバーに負担をかけないよう、1ページごとに1秒あけます

実際に動かした記録(2026年11月4日)

1回目は全部が新規、2回目は確かめのために手元の3件の値をずらしてから流しました。

2026-11-04 14:55:34,707 INFO 見た 40 件 / 新規 40 / 値の変化 0 → sa-2026-11-04.csv
2026-11-04 14:55:38,837 INFO 見た 40 件 / 新規 0 / 値の変化 3 → sa-2026-11-04.csv
1回目 40件すべて新規 / 2回目 新規0・値の変化3 = ずらした3件だけを正しく拾えたことを確かめています
種類題名前の値今の値
値の変化A Light in the Attic52.7751.77
値の変化Tipping the Velvet54.7453.74
値の変化Soumission51.150.1

取れなかった時の記録(わざと無いページを指定)

2026-11-04 14:55:46,960 ERROR 止まった
RuntimeError: 3回とも取れない: https://books.toscrape.com/nai-1.html

Windows で exe にして動かした記録(2026年11月4日・x64)

PyInstaller で1ファイルの exe にし、Python が入っていない状態でも動く形にしました。データ・ログ・差分の CSV は exe と同じフォルダにできます(1ファイルの exe は一時フォルダに展開されるので、書き出し先を exe の横に固定しています)。ログは Windows でも UTF-8 で書きます。

記録:run-windows.log(1回目 新規40/3件ずらした2回目 値の変化3)

個人のお客様へ、この exe 版を納品しています。

お客様の案件に合わせて変える所

株式会社mou 制作サンプル一覧へ → 戻る