RAILS PRESS RUBY on RAILS, it’s DRY and COOL …

RSS Feed

RAILS PRESS RSS

Tag Cloud

はてなブックマーク - railspress.matake.jp の注目エントリー
象形文字くさび形文字ミイラそろばんの玉そろばんコーラン占いの板?象牙大英博物館
« 前のエントリ
Rails2.0で何が変わるのか?
次のエントリー »
Rails×コンテスト=「Drecom Award on Rails」 / Rails×エンジニア×求人=「Award on Rails Jobboard」

Posted on
2007/07/04

Tags
Gem, Ruby, ノウハウ

Keywords


この記事をはてなブックマークに登録 この記事のはてなブックマーク数 この記事を livedoor クリップに登録この記事の livedoor クリップ数 このエントリを del.icio.us に追加
ブックマークに追加する

RubyでブログURLからRSSを自動的に発見してエントリーリストを取得する方法

先月、Twitbackerという、ブログからPingを受け取って「エントリータイトル+URL」をTwitterにPOSTするというツールを作りました。

このTwitbacker、なんともSEO的に強力なツールで、作った時には「Twitbacker」でグーグル検索した時の検索結果が1件も無かったのに、翌週には10,000件を超えていました!!TwitterのFriends(Followers?)が多い人なら、これを使うだけで簡単にブログのアクセスアップも図れます♪

と、まぁ紹介はこのくらいにして、Twitbackerの開発時にいくつか調べたりしたことがあるので、ちょっとそのシリーズでいろいろ書いてみます。

Twitbacker - Pingでブログの更新情報をTwitterに!!

Twitbacker - Pingでブログの更新情報をTwitterに!!

まずPress14号は、「ブログURLからRSSを自動的に発見してエントリーリストを取得する」方法。

RSSのURL取得には、「net-discover」というライブラリを利用すると、簡単です。これを使えばRSS取得はたったの1行。

LANG : RUBY
  1. feeds = URI.parse(url).discover_rss

これで、feedsにRSSのURLのリストが入ります。(RSSが複数ある場合)

また、RSSの解析には「simpleRSS」というツールを使います。これはgemでインストールできます。

LANG : RUBY
  1. gem install simple-rss

RSSの解析はこれまた1行。

LANG : RUBY
  1. rss = SimpleRSS.new(content)

これらを使って、ブログのURLを受け取ってRSSの中身をObjectにして返すクラス、RSSParserってのを作ってみました。
(同じ名前のライブラリが既にあったけど、いろいろ機能ある割によくわかんなかったので、自分で作った。)

LANG : RUBY
  1. require 'open-uri'
  2. require 'net/discover'
  3. require 'rubygems'
  4. require 'simple-rss'
  5.  
  6. class RSSParser
  7.   def self.parse( url )
  8.     feeds = URI.parse(url).discover_rss
  9.     contents = Array.new
  10.     open(feeds.first) do |rss_contents|
  11.       contents = rss_contents.read
  12.     end
  13.     rss = SimpleRSS.new(content)
  14.     rss.items
  15.   end
  16. end

こんな感じで使います。

LANG : RUBY
  1. @items = RSSParser::parse("http://blog.matake.jp/")
  2. puts @items.first.title
  3. puts @items.first.link
  4. puts @items.first.description if @items.first.description
  5. puts @items.first.summary if @items.first.summary


この記事がお役に立ちましたら、一言コメントもらえると嬉しいですm_ _m


コメントはこちらから




使用可能タグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


« 前のエントリ
Rails2.0で何が変わるのか?
次のエントリー »
Rails×コンテスト=「Drecom Award on Rails」 / Rails×エンジニア×求人=「Award on Rails Jobboard」