#author("2017-01-20T14:55:27+09:00","default:yakumo_murakami","yakumo_murakami")
[[Ruby]]
ローカルファイルでも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が来たら? [#he615cc8]
エラーになっちゃってうまく読めない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をパースしてもいいけど、何回も読み込むのはちょっとね。だから一度読んでからパースしましょ。