- 2007/12/10
- Ruby
ブログのRSSを解析するスクリプトを組もうと思って、ブログURIを入力したらソースを解析してRSSファイルを返す仕組みを作っていたら、もっと簡単なライブラリを見つけました。
net-discover
net-discoverを使えば、簡単にRSSファイルのURIを返してくれます。使い方は
require 'net/discover'
feeds = URI.parse(uri).discover_rss
feeds.each{|l|
puts l #=> http://..../index.xml
}
これだけです。
ただ、なぜか取得できないブログがいくつかあったので net-discover のソースを見てみたところ
if attr['rel']=="alternate" && attr['type']==/application/rss+xml/ && href=attr['href'] rss_uri = self + href list << rss_uri end
と、 type="application/rss+xml" のものしか拾わないようになっていました。これじゃあ使えないので、微妙に改変。
if attr['rel']=="alternate" && attr['type']=~/application\/(rss\+|atom\+|.*)xml/ && href=attr['href'] rss_uri = self + href list << rss_uri end
- application/xml
- application/rss+xml
- application/atom+xml
に対応するようにした。便利。とはいっても、ソースを解析して RSS ファイルを探す仕組みは手作業と全く同じなので、net-discover を使う事による解析スピードでのメリットはない…。
次はRSSを解析をしよう。
- Newer: ロリポップからチカッパへ引越をした
- Older: 携帯電話のキャッシュをコントロールする方法