ローカルファイルでもURLでもイケるっぽいわね。
ちなみに、 pubDate はすでに Time型になってるみたい。本当にカンタンね。
require 'rss' begin url = "どこぞのRSSのURL" rss = RSS::Parser.parse(url) rss.items.each{|item| p item.title p item.link p item.pubDate p item.description } end
なお、上の例でRSS自体のタイトル等を取り出すには、こうするの。
p rss.channel.title
エラーになっちゃってうまく読めないRSSがある時はどうしよう?
こうしましょう。
require 'open-uri' require 'rss' rss = nil x = open(url).read begin rss = RSS::Parser.parse(x) rescue RSS::InvalidRSSError rss = RSS::Parser.parse(x, false) end
直接URLをパースしてもいいけど、何回も読み込むのはちょっとね。だから一度読んでからパースしましょ。