AI / AUTOMATION / LINE
条件マッチ時にLINEで即通知
価格チェックツール
CHALLENGE
課題
仕入れは早い者勝ちで、対象の情報は複数のWebサイトに散らばっている。人が巡回して新着を探すのは限界があった。見るべきエリアと条件(面積・法規制・立地)は決まっているのに、見落としと確認の遅れが起きていた。
APPROACH
取り組み
- 巡回対象は各サイトの利用規約を確認し、自動アクセスが認められる範囲に限定する方針で選定
- 対象サイトをPlaywrightで巡回し、案件をDBに蓄積。初回投入後は「DBに無いもの」だけを新着として扱う
- 通知条件(面積・法規制の数値・最寄り駅からの距離)をYAMLで設定し、全条件ANDで判定。同じ案件が複数サイトに載る場合は住所・面積で名寄せして重複通知を防ぐ
- 新着だけでなく価格変更・掲載終了を変化ログとして記録し、値下がりも検知できる構造にした
- サイト側のHTML変更でセレクタが崩れた場合に備え、Claude APIでページを解析して修復を試み、失敗時は運用者へLINE通知するフローを用意
- DBサーバーとクローラーを別コンテナに分離し、日次ダンプ・週次コンテナバックアップ・クラスタ外コピーの3層で保全。外部からの死活監視と日次稼働レポートも自動化
TECH
技術
- Python、Playwright(Chromium)
- PostgreSQL
- LINE Messaging API
- Claude API(セレクタ自動修復)
- Proxmox LXC(Ubuntu)、cron
OUTCOME
結果
本番稼働後、複数サイト・複数エリア体制まで拡張。日中は30分間隔の巡回が止まらず動いている。条件に合う新着はクライアントのLINEに即時届き、運用者側には毎晩サイト別の稼働レポートが届く。
SCALE
規模
- 巡回対象: 複数サイト × 7エリア
- 巡回頻度: 日中30分ごと
- 通知フィルター: 面積・法規制・立地の4条件
OTHER