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が来たら?

エラーになっちゃってうまく読めない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をパースしてもいいけど、何回も読み込むのはちょっとね。だから一度読んでからパースしましょ。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-20 (金) 14:55:27