はてなブックマークから付けたタグの日計をとるrubyスクリプト

特に意味も無く,初めてrubyを使うついでに,題名のようなスクリプトを書いてみた.まぁ,要は,自分がはてなブックマークに登録したページに付けたタグの集計(日計)を取るというものです.rubyってのは,不思議な言語ですね.シンタックスシュガーっていうんですかねー,よくわからんときがあります.制御構文でさえ.でもまぁ,慣れれば,使いやすそうですけど.toeucがあっさり使えるのはびっくりした.これって,Aspect志向的な何かなのかなぁ






#!/usr/bin/ruby

require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'kconv'

urls=Array.new(14) #これを取得したいページ数に変えてください

htbl = Hash.new()

i=0
while i < 14 #これを取得したいページ数に変えてください
url="(ここをはてなブックマークのURLにしてください)?of="+(i*50).to_s
i=i+1

doc = Hpricot( open(url).read )

(doc/"dl.bookmarklist").each do |bookmarklist|
subject=(bookmarklist/"a.bookmark").inner_html.toeuc

#puts subject+"¥n"
ts=(bookmarklist/"dd.timestamp").inner_html.toeuc
if !htbl.key?(ts) then
htbl[ts]=Hash.new()
end

(bookmarklist/"span.tag").each do |tag|
tag_hash=htbl[ts]
tag=(tag/:a).inner_text.toeuc
if tag_hash.key?(tag) then
count=tag_hash[tag]
count+=1
tag_hash[tag]=count
else
tag_hash[tag]=1
end
end
end
end

result_tbl = htbl.to_a.sort{ |a, b|
(b[0] <=> a[0])
}


result_tbl.each do |key, value|
puts "#{key}:¥n"
each_tag_hash=value
each_tag_hash.each_pair do |tkey, tvalue|
print "#{tkey}:"
j=0
while j<tvalue
j=j+1
print "*"
end
puts "¥n"
end
puts "¥n¥n"
end



とまあ,実行すると...

2007年06月08日:

smalltalk:*

prolog:*

scheme:*

free:*******

pascal:*

caml:*

lisp:*

flash:*



2007年06月07日:

tips:*

firefox:*

todo:*

gmail:*

calender:*



2007年06月01日:

blogseed:*





2007年05月25日:

英語:*

blogseeddone:*

mpi:*



2007年05月22日:

blogseed:**



2007年05月21日:

blogseed:*



2007年05月17日:

ノートパソコン:*



2007年05月14日:

不動産:**

ノンリコース:*

投資:**



2007年05月13日:

夜泣き:*

夜鳴き:*

釣り:*

光環境:*

裁き方:*

料理:*

魚:*



こんな感じに出力されます.将来自分がどんな感じだったか思い出せると.