私のはてなダイアリー http://d.hatena.ne.jp/ululun に対して、誰が一番多くブックマークをしているのかを知る方法をご教示ください。

回答の条件
  • 1人5回まで
  • 登録:2008/11/21 11:30:13
  • 終了:2008/11/21 14:39:01

ベストアンサー

id:amachang No.1

amachang回答回数15ベストアンサー獲得回数32008/11/21 14:01:40

ポイント100pt

ブックマークレットを作ってみました。

Firefox 3.0 で http://b.hatena.ne.jp/ に行って以下のブックマークレットを実行してじっと待って見てください。

javascript:var count = 0;var seen = {};var hatenars = {};(function() {    var xhr = new XMLHttpRequest();   xhr.open("GET", "http://b.hatena.ne.jp/bookmarklist?mode=rss&url=http%3A%2F%2Fd.hatena.ne.jp%2Fululun%2F&of=" + count, false);    xhr.send(null);    var r = xhr.responseXML.evaluate("//*[local-name()='item']", xhr.responseXML, null, 7, null);    for (var i = 0; i < r.snapshotLength; i ++) {        var item = r.snapshotItem(i);        if (!seen[item.getAttributeNS("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "about")]) {            var user = xhr.responseXML.evaluate(".//*[local-name()='creator']", item, null, 9, null).singleNodeValue.firstChild.nodeValue;            hatenars[user] = (hatenars[user] || 0) + 1;        }    }    count += r.snapshotLength;    var list = [];    for (var user in hatenars) {        list.push({name: user, count: hatenars[user]});    }    document.body.innerHTML = '<pre>' + list.sort(function(a,b) { return b.count - a.count }).map(function(e){ return e.name + ': ' + e.count }).join('\n') + '</pre>';    if (r.snapshotLength) setTimeout(arguments.callee, 2000);})(); void(0);

ululun の箇所を別の ID に変えれば別の人のもわかります。

動作検証あまりしてないので、動かなかったらすみません。トラックバックくれれば直します。

その他の回答(1件)

id:amachang No.1

amachang回答回数15ベストアンサー獲得回数32008/11/21 14:01:40ここでベストアンサー

ポイント100pt

ブックマークレットを作ってみました。

Firefox 3.0 で http://b.hatena.ne.jp/ に行って以下のブックマークレットを実行してじっと待って見てください。

javascript:var count = 0;var seen = {};var hatenars = {};(function() {    var xhr = new XMLHttpRequest();   xhr.open("GET", "http://b.hatena.ne.jp/bookmarklist?mode=rss&url=http%3A%2F%2Fd.hatena.ne.jp%2Fululun%2F&of=" + count, false);    xhr.send(null);    var r = xhr.responseXML.evaluate("//*[local-name()='item']", xhr.responseXML, null, 7, null);    for (var i = 0; i < r.snapshotLength; i ++) {        var item = r.snapshotItem(i);        if (!seen[item.getAttributeNS("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "about")]) {            var user = xhr.responseXML.evaluate(".//*[local-name()='creator']", item, null, 9, null).singleNodeValue.firstChild.nodeValue;            hatenars[user] = (hatenars[user] || 0) + 1;        }    }    count += r.snapshotLength;    var list = [];    for (var user in hatenars) {        list.push({name: user, count: hatenars[user]});    }    document.body.innerHTML = '<pre>' + list.sort(function(a,b) { return b.count - a.count }).map(function(e){ return e.name + ': ' + e.count }).join('\n') + '</pre>';    if (r.snapshotLength) setTimeout(arguments.callee, 2000);})(); void(0);

ululun の箇所を別の ID に変えれば別の人のもわかります。

動作検証あまりしてないので、動かなかったらすみません。トラックバックくれれば直します。

id:avena No.2

avena回答回数48ベストアンサー獲得回数72008/11/21 14:24:27

ポイント100pt

最新50エントリ分を取得するサービスがブコメで紹介されてましたが、ここはちょいと、何件でも OK な Greasemonkey を書いてみました。

ものすごく、手抜きですので、集計が済んだら、アンインストールしちゃってください。

1. 以下の URL からスクリプトをインストール

http://www.madin.jp/works/hatebuusercount.user.js

2. はてブのエントリ一覧ページにアクセス。閾値 1 user (threshold=1) にしないと発動しません。

http://b.hatena.ne.jp/entrylist?url=http%3A%2F%2Fd.hatena.ne.jp%...

3. 右上に出る "Count!" ボタンを押すと計算スタート

4. これだけだと最新50エントリ分だけしか集計できないのですが、もっと見たい! という場合には AutoPagerize などを入れて、見たい分だけ (100件でも150件でも) 表示される状態にして計算をすると吉。

参考 http://userscripts.org/scripts/show/8551

※ 0.6秒ごとにエントリページを見に行きますので、あんまり使いすぎると、はてなの中の人に、おこられるかも……。

  • id:munyaX
    ブラウザのブックマークなのか、はてブ(はてなブックマーク)なのか(または類似サービスか)で答えが変わってきます。
    またブックマーク対象が以下のURLだけなのか、その下にぶらさがるページも対象なのかも合わせて書かれるとよいかと思います。
    http://d.hatena.ne.jp/ululun

    おそらく、はてブでブログ全体なのだと思いますが(;´∀`)
    "誰が"という識別をしようとすると、ブラウザのブックマークでは難しいですねぇ。
  • id:qwerkan
    (はてなにより削除しました)

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません