[Python]楽天市場の価格を自動監視して値下げ時にLINEに通知するツールを作った | TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
特定商品の価格変動を継続的に監視する作業は、手動では極めて非効率であり、値下げのタイミングを逃すリスクがある。また、監視対象が増加する場合や、PCの起動状態に依存せず、確実に、かつ即時性の高い手段で通知を受け取る仕組みの構築が求められる。
// Approach
requestsとBeautifulSoupによるスクレイピング、pandasを用いたCSVファイルへの履歴保存、LINE Messaging APIによる通知処理を組み合わせた。機能をscraper、storage、notifierといったパッケージに分割し、メンテナンス性を考慮したディレクトリ構成を採用している。
// Result
値下げ検知時のLINE通知を実現。今後の展望として、機密情報の安全な管理(Secret Managerの利用)や、ローカル環境の制約を排除するためのサーバーレスアーキテクチャ(Cloud Functions等)への移行を挙げている。
Senior Engineer Insight
> 学習プロジェクトとしては、モジュール化による関心の分離が適切に行われており、設計の基礎が確立されている。しかし、実戦投入の観点では、HTML構造の変化に依存するスクレイピングの脆弱性と、CSVによる状態管理の限界が懸念される。大規模な監視や高可用性を求めるならば、公式APIの利用、DBによる状態管理、およびCloud Functions等のサーバーレス基盤への移行が必須である。また、config.pyへのトークン直書きはセキュリティ上の重大な欠陥であり、環境変数やSecret Managerの利用は初歩的ながら不可欠な要件である。