Ruby 2.0.0 で、RSS で使われている XML をしたいと思ってライブラリを探したところ、RSSライブラリを見つけました。試してみたら非常に簡単にパースできましてので、サンプルコードを下記に示します。
下記はYahoo!ニュースのトピックスの RSS で配信されている記事のタイトルをすべて抜き出すコードです。
1 2 3 4 5 6 7 8 9 10 |
require 'rss' require 'net/http' xml = Net::HTTP.get('rss.dailynews.yahoo.co.jp', '/fc/rss.xml') doc = RSS::Parser.parse(xml) doc.items.each do |i| p i.title end |
4行目
RSS の URL に対して GET リクエストを送り、結果の XML を変数 xml に保存します。
6行目
RSS::Parser の parse メソッドの引数に XML データを渡すことでパースしてくれます。パースされた結果としてオブジェクトを変数 doc に保存します。
7行目
doc.items.each とすることで、RSS に含まれる全ての item に対して処理をすることができます。また、title プロパティを参照することで、各記事のタイトルにアクセスすることができました。