バリケンのRuby日記 RSSフィード

2006-09-25

[] RubyRSSライブラリ  RubyのRSSライブラリ - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  RubyのRSSライブラリ - バリケンのRuby日記  RubyのRSSライブラリ - バリケンのRuby日記 のブックマークコメント

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を出力したりとか色々な機能があるようだよ。詳しくは使い方を見てね。

koukou2006/09/30 14:34rss.output_encoding = "Shift_JIS"と入れておくとto_sjisは必要なくなります.

"Shift_JIS"はdowncase.gsub(/-/, "_")で正規化されるので"shift-jis"とかでもOKです.お薦めしませんが.

muscovyduckmuscovyduck2006/09/30 23:47kouさん>
RSSオブジェクトには、output_encodingというインスタンス変数があるのですね。ありがとうございます!