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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS