定期的に動くなにかを Rails でつくりました。
twitter でロムしてる優れ技術者のなかには定期的に動く何かを飼っている人がおり、ワナビーとしてはやはり形から真似しなければなるまいと、とりあえずスクレイパーのたぐいをつくることにしました。
定期実行には Whenever
Rails の定期実行には Whenever という gem を使いました。
#config/schedule.rb 生成 wheneverize #書きこまれる内容の確認 whenever #crontab を更新する whenever --update-crontab #crontab から削除する whenever --clear-crontab
Whenever や Rails 自体が動き続けるのではなく、config/schedule.rb に書いた内容にしたがって Whenever が実行内容をコーディネートして crontab によきにはからってくれるという感じです。
HTML 解析には Nokogiri
jQuery でもおなじみの CSS セレクターが使えます。
doc.css('ul.mdMain li a')
open-url で文字化け
charset 拾って parse して~とやってるとどうやっても文字化けしたので、バイナリから kconv でアレという感じにすると解決しました。
require 'open-uri' require 'kconv' page_html = open(page_url, "r:binary").read.toutf8