https://twitter.com/ccc_privacy_bot
作った経緯
- Tカードが個人情報を提携企業に提供開始
- 個人情報提供の中止はいつでもできるが、「提供先企業は随時増える」「提供先企業が増えてもCCCからは通知は来ない」「新規企業は何もしないとデフォルトで個人情報提供する設定」というユーザフレンドリーじゃない仕様
- 毎日PDFをチェックしにいくほど暇じゃないのでボット作るか
という感じ
ボット自体は半月くらい前にはできてたのですが、2回目以降のCCCの更新が取得できるまで公開を控えていました。
ボットでやっていること
- 30分に1回、提供先企業一覧のPDFをダウンロードできるページにいく
- PDFをダウンロードして提供先企業一覧を取得
- スクレイピングだけでいけると思ったらPDFで提供されていたのでparseするのが大変だったw
- 新着があればボットでつぶやく
技術的な話
ソースコード
https://github.com/sue445/ccc_privacy_crawler
使ってる技術
- ruby 2.1.5
- padrino
- Heroku
Herokuでも無料で1日1回以上cronを動かす方法
Herokuで30分に1回ボットを動かしているというと有料の Heroku Scheduler*1を思い浮かべると思いますが、このボットでは sidekiq-cronで自前でcron処理を行いwebのDynoを落とすことで無料でも30分に1回の定期実行を実現しています。webのDynoを落とすとURLでアクセスできなくなりますが、ボットということで割り切ってますw
sidekiqが立ち上がっている時はDynoはずっと立ち上がったままですが、1 Dynoをずっと動かす分には無料枠で大丈夫です。
*1:定期実行の間隔が1日1回なら無料だが、それより多いと有料