はてなブックマークでは、他のユーザーを「お気に入り」として 自分のリストに追加可能です。お気に入りに入れると、http://b.hatena.na.jp/[user]/favorite にそのユーザー一覧が表示されます。お気に入りに入れられたユーザーは、誰が自分のことをお気に入りに入れたかすぐにはわかりませんが、お気に入りに入れられた数は知ることが出来ます。
お気に入りに入れてくれたユーザーを知ることは出来ないので、「知りたい」という要望がでることはよくあるのですが、あまりその辺を密接に繋げることはしたくない、というのがはてな側の考えのようで、これは実装の予定がありません。一方で、お気に入りリストが公開されているので、それを使って間接的にお気に入りに入れてくれるユーザー(お気に入られ)を知る方法が生み出されてきました。
お気に入られを知る方法で一番有名なのが、googleでb.hatena.ne.jpを対象に(site:b.hatena.ne.jp)、「お気に入り」という言葉がtitleに含まれる(intitle:お気に入り)サイトを検索して、さらにその中にユーザー名が入っているどうかで絞り込む方法。これだとだいたい半分くらいのユーザーが把握できます。
せっかくお気に入りの一覧が(公開ユーザーなら)表示されているんだから、それをクロールしてくればいいじゃん、という感じで作ったのが冒頭のリストです。人にもよりますが、7割くらいのユーザーはこれで把握できる感じです。
もちろん、公開データのみを使って作業していますので、プライベートモードになっているユーザーは把握出来ません。
下に置いてある「出力を作るperl script」を使っています。いくつかモジュールを使っていますがperlを読める人なら何のモジュールを使っているかはわかるでしょう。
初期ユーザーを誰にするかで結果が変わるか、いろいろ取得して調べたんですが、まあだいたい20人くらいお気に入られている人であれば誰を最初にしても結果は同じみたいです。つまり、そこから最終的にたどれないにも関わらず、お気にいられ数(被fav数)が20以上になっている人はいなかった、というのが自分の調査結果でした。今はとりあえず"kanose"を初期ユーザーにしています。
今は、毎月1日の午前2時半からcronを回しています。数時間で取得が終わっているのに後で気が付いて、その数時間後〜数日後にここにアップする感じです。
YAMLで保存されてます。YAMLの説明は要る? まあいいや、省略しちゃいます。いろんなスクリプト言語で読めるようになってます。まあ、:区切りでデータ置いたり、-列挙でリスト作ってるだけなので、人間でもよもうと思えば読めるんじゃないでしょうか? ちなみに、
こんな感じになっています。
あと、2007年7月1日以降のデータには「被favWiki」で使える被favランキングデータも同梱してあります。(この説明でわかる方、誰か書き換えて頂ければ幸いです)
また、2008年5月1日以降2009年2月1日までのデータには、JSON形式で保存したデータも同梱しました。JSON::Syck::Dumpでただ出力しただけのやつですが……
このリストを使ったり使わなかったりしていろいろ調べたことがあります。
var d=document; var url='http://kadete.info/hatenabookmark/jquery-1.3.2.min.js'; var e=d.createElement('script'); e.charset='utf-8'; e.src=url; d.getElementsByTagName('head')[0].appendChild(e); url='http://kadete.info/hatenabookmark/showRetired.js'; if(!url.match(/\?/))url+='?t='+(new Date()).getTime(); var e2=d.createElement('script'); e2.charset='utf-8'; e2.src=url; d.getElementsByTagName('head')[0].appendChild(e2);これが何をするかとか、どう使うかとかははてなダイアリーにて