本の感想一覧作成スクリプト

ブログ内の本の感想一覧を作ろうと思い、そのためのスクリプトを書いた。


以下、ソースコード

require 'rubygems'
require 'hpricot'
require 'csv'

CSV.open(ARGV[0], 'r') do |row|
  next unless row[2] =~ /hatena-asin-detail/
  
  doc = Hpricot(row[2])
  (doc/"div.section").each{|div|
    ptitle = div/"p.hatena-asin-detail-title"
    next if ptitle.size == 0
    
    sectionname = (div/:h3/:a).first[:name]
    
    ptitle.each{|p|
      a = (p/:a).first
      title = a.inner_text
      asinlink = a[:href]
      asinlink =~ /http:\/\/d.hatena.ne.jp\/asin\/(\w+)\//
      asin = $1
      
      article_url = 
        "http://d.hatena.ne.jp/endor/#{row[0].split('-').join}/#{sectionname}"
            
      puts "[asin:#{asin}:image:small] <a href=\"#{article_url}\">#{title}</a> #{row[0]}"
    }
  }
end

ダウンロードしたCSV形式の日記データから、asin:detail形式で書かれている部分を抽出して一覧のソースを吐きます。

Hpricot便利!

これを利用して作ったのがこちら>g:endor:keyword:本の感想一覧

実際には多少(かなり?)手作業で直しています。

実行にはHpricotが必要です。

利用される際はarticle_urlのidを適当に変更してください。