Ruby で RSS を扱うには RSS::Parser クラス を利用すると簡単にできる。
require 'rss'
feedUrl = 'http://loumo.jp/feed/'
rss = RSS::Parser.parse(feedUrl)
rss.items.each{|item|
puts item.title
puts item.link
puts item.description
puts item.pubDate
}
$ ruby test_rss.rb
.htaccess を使用して画像キャッシュの設定をする
http://loumo.jp/wp/archive/20140103001123/
GTmetrix 見たら画像類(省略
Fri, 03 Jan 2014 00:11:23 +0900
<category>WebSite</category>
# 以下略
ところで RSS::Parser クラスのドキュメントを読むと parse の第一引数は本来は RSS そのものを渡す必要がある。使用している XML パーサにより引数が URL だったらそれを取得するよう動いてくれるらしい。
というわけで一旦 RSS を文字列として読み込む方法でも書いてみた。ファイルに保存すればキャッシュとしても利用可能だしそのほうが良さそう。
require 'rss'
require 'uri'
require 'net/http'
feedUrl = 'http://loumo.jp/feed/'
feed = Net::HTTP.get(URI.parse(feedUrl))
rss = RSS::Parser.parse(feed)
rss.items.each{|item|
# 省略
}
Net::HTTP.get を使用してダウンロードしたものを同じように RSS::Parser.parse に読ませている。結果は同じ。