はてなブックマークをバックアップ

クローラーを書いてたら年末に今年一年のブックマークの分析をしようとして書いていたやつを思い出した。

require 'rubygems'
require 'feed_tools'
require 'pp'
$KCODE = 'u' 

hatena_b_feed_uri = "http://b.hatena.ne.jp/walf443/atomfeed?date=20060101"

loop do
  begin
    feed = FeedTools::Feed.open(hatena_b_feed_uri)
    p file_name = hatena_b_feed_uri.sub(/^.*\?date=(\d*)$/, "feed\\1.atom")
    File.open(file_name , "w") do |file|
      file.puts feed.build_xml('atom', 1.0)
    end 

    next_day_feed = feed.links.find {|i| i.rel == "next" }
    break unless next_day_feed
    p hatena_b_feed_uri = next_day_feed.href
    sleep 20
  rescue FeedTools::FeedAccessError => e
    sleep 30
    retry
  end 
end

RSS関係ならFeedToolsがフォーマットを意識せずに使えて便利。

分析はやろうと思っていたら年を越してしまったので結局やってない