2006-04-09
「rubyco(るびこ)の日記」のもくじを作るのはどうか
rubyco さんの日記は自分が Ruby の勉強をするのに役立つので、手動でリンク集的なものを作ろうと思い、作り出して、あっさり挫折。とりあえず各記事の名前と URL だけは機械的に抽出したほうがよさそう。ということで、下記スクリプトで読み込んでWiki にはっておいた。うは、すごくいっぱいある……。
require 'net/http'
$KCODE = 'euc'
def perse_page(path, address, port=80)
result = []
response = nil
Net::HTTP.version_1_2
Net::HTTP.start(address, port) do |http|
response = http.request_get( path )
end
response.body.scan(/<h3>.+<\/h3>/).reverse.each do |line|
if line.gsub(/<span[^>].+>.+<\/span>/, '') =~ /href="([^"]+)"[^<]+<\/a>(.+)<\/h3>/
path = $1
name = $2.gsub(/<[^>]+>/, '')
result << [name, path]
end
end
result
end
address = 'd.hatena.ne.jp'
id = 'rubyco'
(2006..2006).each do |year|
(1..12).each do |month|
path = "/#{ id }/#{ year }%02d" % month
puts "!!#{ path }"
perse_page(path, address).each do |name, path|
puts "*[[#{ name }|http://#{ address }#{ path }]]"
end
end
end