btoメモ

なんか適当に書く

ruby で rss auto-discovery のリンク先を取得する

rubyrss auto-discovery のリンク先を取得する

#!/usr/bin/env ruby
require 'rubygems'
require 'open-uri'
require 'pp'
require 'scrapi'

def find_rss_links content
  links = []
  Scraper.define do
    def initialize *args
      super
      @attributes = [];
    end
    process 'link' do |element|
      @attributes << element.attributes
    end
    attr_reader :attributes
  end.scrape(content).attributes.each {|link|
    next unless link['type']
    case link['type'].downcase
    when 'application/rss+xml', 'application/atom+xml'
      links << link
    end
  }
  links
end
  
pp find_rss_links(open(ARGV.shift).read)

scrapi を使ってみた。 うまく動いてるっぽい。 でも、もっと簡潔に書けそうな気がする。