ホーム DoRuby rubyでRSSを取得する

rubyでRSSを取得する

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちは。T氏です。

今日はrubyでRSSを取得する方法をご紹介します。

rubyにはRSSを取得するためのクラスが用意されているため、それを使ったサンプル

を作成しました。

クラスは [RUBY_HOME]/rss/**.rb に色々と用意されています。

※rubyは1.8.7 を使っています。

# sample.rb
class Sample
  require 'rss'
  require 'uri'

  attr_accessor :title, :description, :link, :published_at

  def initialize
    @title = nil
    @description = nil
    @link = nil
    @published_at = nil
  end

  def self.get_rss(rss_url)
begin
      ary = []
      unless rss_url.nil?
        rss_results = ""
        url = URI.parse(rss_url).normalize
        open(url) do |http|
          response = http.read
          rss_results = RSS::Parser.parse(response, false)
          rss_results.items.each do |item|
            obj = self.new
            obj.title = item.title
            obj.description = item.description
            obj.link = item.link
            obj.published_at = item.date
            ary << obj
          end
        end
      end
      return ary
    rescue => e
      raise e
    end
  end

end

さて、実際に使ってみましょう。

ここではDoRuby!記事のRSSを取得しています。

$ irb -Ku
irb(main):001:0> require 'pp'
irb(main):002:0> require 'sample'
irb(main):003:0> rss = Sample.get_rss('http://doruby.kbmj.com/t_article/20091118/Rake_/feed')
irb(main):004:0> pp rss
[#   "こんにちは。T氏です。今日は自作のRakeタスクを追加する方法をご紹介します。 ",
  @link="http://doruby.kbmj.com/t_article/20091118/Rake_",
  @published_at=Wed Nov 18 10:00:00 +0900 2009,
  @title="Rakeタスクを追加する">,
 #  @description=
   "こんにちは。T氏です。 最近は、ようやくRailsの開発にも慣れてきました。慣れてくると、
Rails以外のフレームワークも使ってみたいな、なんて思ったりします。 そこで、以前から
気になっていたMerbのインストールから起動までをご紹介したいと思います。 \n",
  @link="http://doruby.kbmj.com/t_article/20090915/Merb_1",
  @published_at=Tue Sep 15 19:00:00 +0900 2009,
  @title="Merbを使ってみる">,
 #  @description=
   "こんにちは。T氏です。\n\n今日はRailsのエラー画面(public/404.htmlや500.html)への遷移は
どうやってされているかをご紹介します。",
  @link="http://doruby.kbmj.com/t_article/20090604/Rails_",
  @published_at=Thu Jun 04 19:47:37 +0900 2009,
  @title="Railsのエラー画面への処理を読む">,
 #  @description=
   "はじめまして!KBMJでエンジニアをやっているT氏です。初投稿の今回は、rakeコマンド
についてご紹介したいと思います。*rakeとは・・・ビルドツール(AntやMake等)のruby##の事    ",
  @link="http://doruby.kbmj.com/t_article/20090317/_rake_1",
  @published_at=Tue Mar 17 18:10:00 +0900 2009,
  @title=
   "Ruby on Railsでrakeコマンドを使って様々なタスクを実行しよう">]
irb(main):005:0> exit

無事に取得出来ましたね。

皆さんも試してみてはいかがでしょうか。

記事を共有

最近人気な記事