ニコニコ動画の毎時ランキングをつぶやくtwitterBotを作った
NicoHourlyRank
http://twitter.com/NicoHourlyRank
経緯
更新頻度が高いけど、毎回チェックしたり、RSS取ったりする程ではないモノに対して、twitterBotは有効かと思って制作
技術メモ
rubyでtwitterにアクセスするライブラリ
導入に少々苦戦
まず、httpartyが無いと怒られる
require 'twitter' LoadError: no such file to load -- httparty from /home/kasei-san/lib/rubygems/custom_require.rb:32:in `gem_original_require' from /home/kasei-san/lib/rubygems/custom_require.rb:32:in `require' from ./../lib/twitter/search.rb:2 from /home/kasei-san/lib/rubygems/custom_require.rb:27:in `gem_original_require' from /home/kasei-san/lib/rubygems/custom_require.rb:27:in `require' from ./../lib/twitter.rb:14 from /home/kasei-san/lib/rubygems/custom_require.rb:27:in `gem_original_require' from /home/kasei-san/lib/rubygems/custom_require.rb:27:in `require' from ./twitter.rb:2 from /home/kasei-san/lib/rubygems/custom_require.rb:27:in `gem_original_require' from /home/kasei-san/lib/rubygems/custom_require.rb:27:in `require' from (irb):4
httpartyを導入
%gem install httparty
今度は、echoeが無いと怒られる
irb(main):002:0> require 'httparty' Gem::LoadError: Could not find RubyGem echoe (>= 0) from /home/kasei-san/lib/rubygems.rb:578:in `report_activate_error' from /home/kasei-san/lib/rubygems.rb:134:in `activate' from /home/kasei-san/lib/rubygems.rb:158:in `activate' from /home/kasei-san/lib/rubygems.rb:157:in `each' from /home/kasei-san/lib/rubygems.rb:157:in `activate' from /home/kasei-san/lib/rubygems/custom_require.rb:31:in `require' from (irb):2
echoeを導入
%gem install echoe
今度は、.twitterが無いと怒られる
irb(main):004:0> require 'twitter' Errno::ENOENT: No such file or directory - /home/kasei-san/.twitter from ./twitter.rb:3:in `initialize' from ./twitter.rb:3:in `open' from ./twitter.rb:3 from /home/kasei-san/lib/rubygems/custom_require.rb:27:in `gem_original_require' from /home/kasei-san/lib/rubygems/custom_require.rb:27:in `require' from (irb):4 from /home/kasei-san/lib/rubygems/exceptions.rb:81
単なるファイルっぽいので、空のテキストファイル .twitter を生成
やっとこさ成功
irb(main):002:0> require 'twitter' => true
ちなみにPOSTはこんな感じ
twit = Twitter::Base.new("メールアドレス", "パスワード") twit.update('テストテストー')
その他
せっかくなので、100位までの毎時ランキングのデータを保存しています
何か悪いことに使えないか計画中
2009/02/07 追記
ニコニコ動画のレイアウト変更で、正しくスクレイプできてなかった不具合を修正しました
どうやら02/16の16時頃にレイアウトが変更された模様
2009/02/07 追記2
0時〜9時の間に、時刻表示がおかしくなる不具合を修正しました
2009/02/09 追記
またもやレイアウト変更対応
2009/02/11 追記
urlが相対Pathになっていた不具合対応