Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 |

2006-09-02(Sat)

RSSの解析

Ruby勉強

RSS Parserを使用することで取得したRSS内の情報を簡単にとりだすことが可能。以下ははてなのこのページのRSS情報rss.xmlというファイルにしてから解析を行ったもの。Windows環境で行ったため出力をSJISに変換している。

参考サイトhttp://www.cozmixng.org/~rwiki/?cmd=view;name=RSS+Parser


でも、ケロログhttp://www.voiceblog.jp/)のRSSだとエラーになるんだよなぁ、何でだろ?

require 'kconv'     # UTF8をSJISに変換
require 'rss/1.0'
require 'rss/2.0'
require 'rss/dublincore'  # dc:xxx に対応
rss = nil
sts = 0
begin
  sts = 1
  f = File.open("F:/ruby_RDE/rss.xml") # F:\ruby_RDE\rss.xml
  rss = RSS::Parser.parse(f)
rescue RSS::InvalidRSSError
  sts = 2
  rss = RSS::Parser.parse(f, false)
ensure
  f.close
  p "sts=" + sts.to_s
end
puts "# --- channel ---"
puts "      About : " + rss.channel.about.tosjis
puts "      Title : " + rss.channel.title.tosjis
puts "       Link : " + rss.channel.link.tosjis
puts "Description : " + rss.channel.description.tosjis

# itemを指定して取得
puts "# --- item(1) ---"
puts "      Title : " + rss.item(1).title.tosjis

# itemを一括取得
puts "# --- items ---"
rss.items.each do |item|
  puts "-------------------------------------"
  puts "      Title : " + item.title.tosjis
  puts "       Link : " + item.link.tosjis
  puts "Description : " + item.description.tosjis

  puts "    DC:date : " + item.dc_date.to_s
  puts " DC:creator : " + item.dc_creator.tosjis
  item.dc_subjects.each do |subject|
    puts " DC:subject : " + subject.content.tosjis
  end
end
出力
"sts=1"
# --- channel ---
      About : http://d.hatena.ne.jp/hake/rss
      Title : はけの徒然日記
       Link : http://d.hatena.ne.jp/hake/
Description : はけの徒然日記
# --- item(1) ---
      Title : [zaurus][ruby]Rubyでwiki
# --- items ---
-------------------------------------
      Title : [ruby]Kernel#block_given?
       Link : http://d.hatena.ne.jp/hake/20060901/p1
Description : Rubyの勉強 WEBrickのサンプルで出てきた記述。メソッドでブロック付きと無しで違う動作が定義できるみたいです。
    DC:date : 2006-09-01T00:00:00+09:00
 DC:creator : hake
 DC:subject : ruby
-------------------------------------
      Title : [zaurus][ruby]Rubyでwiki
       Link : http://d.hatena.ne.jp/hake/20060831/p2
Description :  HikiというRubyで書かれたWikiクローンがあったので昨日のwebrick上で動かしてみました。(以下略)
 DC:date : 2006-08-31T00:00:00+09:00
 DC:creator : hake
 DC:subject : zaurus
 DC:subject : ruby

以下略

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hake/20060902/p1