ココロミにきみ

本と体とプログラミング

DIY githubを使って自動更新サイトをつくる

githubを使って月一回自動更新するサイトを(AIが)作りました

ymlファイル自動更新のポイントになります

みんなAIを使って作ると思うので、「こういうことが出来る」とだけ伝わればOKかなと

もちろんサブズク0円です

 

具体的な話で説明します

高知県は佐川町の各施設のイベント情報を集約するサイトを以前作りました

仕組みは、pythonによる情報スクレイピングで毎月1日に手動で行って(ボタン押すだけだが)、複数のサイトから集められた情報をjsonファイルとして、webサイトにアップロードして情報集約サイトとして使ってもらう、という仕組み

*************************

★今回はその月一の情報スクレイピングも自動化しようと

*************************

で、今まで何で手動でやってたかというと、pythonで自動スクレイピングをするには、自分でサーバーを立てるか、pythonanywhere.comとかを有料で使うとかしないと、外部サイトのスクレイピングの自動化はできなかったからです(出来る人は知らん)

google colaboratory では自動スクレイピングはお試しですら、アカウントごとbanされるのでやめた方いいです(されました)

で、AIに相談したところ、githubでymlファイルを使うと、月一回とか週一回とかpythonを自動実行してくれると教えてくれました

本来はgithubでも自動実行は有料なのですが、毎月無料使用時間があって、その範囲に全然収まるのでそれでいこうと

自動更新サイトのデータの流れ

雑な図ですが、だいたいこんな感じ

ymlファイルの中のここがポイント

on:
  schedule:
    - cron: '0 1 1 * *'  # 毎月1日 午前10時 (JST = UTC+9) に実行
  workflow_dispatch:       # GitHubの画面から手動実行も可能

こんな感じのをAIが書いてくれるので、それをGithubにいれれば良い(手順がそこそこ複雑なのでそれもAIに聞いてください)

オススメAIは2026/03/03現在は圧倒的にClaudeです

 

ちなみに、ymlを含む仕組みを作ってもらうのは簡単ですが、Githubの設定で2時間くらい無駄にしました

Claudeはだいぶ省略した使い方の説明をするので、エラーが起こった場合は、スクリプトエラーではなくて、だいたい人間側の使い方やファイルの権限設定が間違ってると思ったほうがいいです

 

そして余談ですが、データスクレイピングの仕組みを作るほうがよっぽど手間です

が、今後は何もしなくても勝手に情報が更新されていくと

相手先のサイトがリニューアルされたときのみ、スクレイピングの修正が必要になると

べんりじゃ