RubyでRSSを読む
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[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をパースしてもいいけど、何回も読み込むのはちょっとね。だから一度読んでからパースしましょ。
終了行:
[[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をパースしてもいいけど、何回も読み込むのはちょっとね。だから一度読んでからパースしましょ。
ページ名: