« 感想: 映画 しゃべれどもしゃべれども | トップページ | 感想: ダイヤルMを廻せ »

2007-06-23

ruby で html から rss を生成

以前、java を使って html ページから rss を生成する例を公開した。
- http://youichi-kato.cocolog-nifty.com/blog/2006/09/nekohtml_rome_r_8150.html
  nekohtml + rome で RSS を生成

同等のものを ruby で書いてみた。
java でつくるより ものすごく簡単にできる!
(おそらく 今後、java で同等のものを書くことはないだろう, ruby で書く事しか考えられない)

html を読んで、rss をつくるのは、たったこれだけで OK.
(ここでは "えんげきのぺーじ" というサイトの レビューページの rss を作成しています)

$ cat empe.rb
require 'rubygems'
require 'hpricot'
require 'open-uri'
require "rss"
require 'kconv'

# http://dx.sakura.ne.jp/~nnn/play/itigyo/itigyo.cgi?cn=1000
#       /htm/body/p/dl  dt, dt

# url = "itigyo.cgi.html"  # for debug, test
url = "http://dx.sakura.ne.jp/~nnn/play/itigyo/itigyo.cgi?cn=1000"

doc = Hpricot(open(url))

rss = RSS::Maker.make("2.0") { |maker|
  maker.channel.about = "empe.rdf"
  maker.channel.title = "itigyo"
  maker.channel.description = "Empe Site"
  maker.channel.link = url

  doc.search('/html/body/p/dl').each { |row|
    row.search('dt').each_with_index { |dt, index|
      item = maker.items.new_item

      item.link = url
      item.title = dt.inner_text
      item.description = dt.next_sibling.inner_text
      item.date = Time.now - 600 * index
    }
  }
}
puts rss.to_s.toutf8

本当は、
  xfy Community Forum
http://www.xfytec.com/community/modules/newbb/viewforum.php?forum=22&sortsince=1000
の rss を生成したかったのだが。
ruby からの https アクセスが
  certificate verify failed (OpenSSL::SSL::SSLError)
のエラーになるので、とりあえず保留。
(証明書を download して、ruby からそれを指定すればよさそうなのだが、方法がよくわからない...)

|

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/184434/15530515

この記事へのトラックバック一覧です: ruby で html から rss を生成:

» HTMLはアフィリエイトの必修項目 [HTMLはアフィリエイトの必修項目]
HTMLとは、「Hyper Text Markup Language(ハイパーテキスト・マークアップ・ランゲージ)」の略で、ウェブページを作成するためのマークアップ言語です。 [続きを読む]

受信: 2007-06-23 20:25

» BODY といえば [cacchao.net]
こんなものもありますよ。ぜひお越しください! [続きを読む]

受信: 2007-06-24 22:48

» しゃべれども しゃべれども 映画 [映画DVD情報ナビ]
しゃべれども しゃべれども 映画は シネスイッチ銀座、新宿武蔵野館、 シネ・リーブル池袋ほか全国にて5月26日公開です [続きを読む]

受信: 2007-07-01 02:28

コメント

コメントを書く