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