2006-09-25
■ [Ruby] RubyのRSSライブラリ

RubyのRSSライブラリを使ってみるよ。
RSS::Parser.parseメソッドを使うと、引数で指定したXMLファイルをパースしてオブジェクトとして抽象化することができるよ。あとはそのオブジェクトから必要な要素を好きなように取り出せば、RubyでいろいろなRSSを料理して楽しめるよ。
じゃあ、「はてなブックマーク」の「注目のエントリー」のRSSをパースして、タイトルとURLを表示させてみるよ(Windowsのコマンドプロンプトで表示することを前提に、tosjisしているよ)。
require 'open-uri' require 'rss/1.0' require 'kconv' # http_proxy = 'http://プロキシサーバ名:ポート番号/' http_proxy = nil filename = 'http://b.hatena.ne.jp/entrylist?mode=rss&sort=hot&threshold=3' rss = open(filename, {:proxy => http_proxy}) {|file| RSS::Parser.parse(file) } rss.items.each{|item| puts item.title.tosjis puts item.link puts }
すごく簡単にRSSを扱うことができるね。ほかにもdateを自動的にTimeオブジェクトにしてくれたり、RSSを出力したりとか色々な機能があるようだよ。詳しくは使い方を見てね。
トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20060925
"Shift_JIS"はdowncase.gsub(/-/, "_")で正規化されるので"shift-jis"とかでもOKです.お薦めしませんが.
RSSオブジェクトには、output_encodingというインスタンス変数があるのですね。ありがとうございます!