HTMLページをRSSに変換するのに便利なFeedalizer
http://termos.vemod.net/feedalizer
APIはScrApiと結構似ている感じです。内部的にはHpricotを使っていてコードはファイル一つでそれほど行数もないのですぐ読めます。Feedを作成する部分は標準添付のrss/makerを使ってるようです。
RubyでPlagger::CustomFeed::Script用のプログラム作るのにうってつけかもしれません。ただScrApiとFeedToolsを使えばそれほど苦労しない気もします。あとFeedalizer.newするところでURLの文字列を渡しているのですが,HTML文書を文字列で渡したりとかそういうのはないので日本語の場合RSSの各カラムに入れるところでいちいちutf8に変換しなければいけないのがちょっと使いやすくないかなと思ったりしました。
require 'rubygems' require 'feedalizer' require 'kconv' $KCODE = 'u' #$DEBUG = true base_url = "http://d.hatena.ne.jp" Feedalizer.new("#{base_url}/walf443") do feed.title = "Feedalizer Test" feed.about = "Feedalizerのテスト" feed.description = "" scrape_items("div.section") do |rss_item, html_element| rss_item.link = base_url + html_element.search("h3 a").first.attributes["href"] rss_item.title = html_element.search("h3").first \ .inner_html.toutf8 \ .gsub(/<.*?>/, '') rss_item.description = html_element.inner_html.toutf8 \ .sub(/<h3.*\/h3>/, "") \ .sub(/<p class="sectionfooter".*<\/p>/, "") \ .gsub(/<.*?>/, '') \ .gsub(/[\n\t]/, '').strip end output! end