Kawa.netブログ(川崎有亮)

アクセスカウンタ

help リーダーに追加 RSS [Perl] del.icio.us のブックマーク登録件数を取得する Perl 関数

<<   作成日時 : 2006/03/17 03:05   >>

トラックバック 0 / コメント 5

ページ間のリンク関係を元にした Google Page Rank の仕組みは破綻しつつあるので、
他人のブログ内での評価(好感度)とか、ソーシャルブックマークのユーザによるページ評価とか、
リンク構造以外のページ評価の仕組みが重要になってきている。
ソーシャルブックマークといえば、はてなブックマークdel.icio.usだけど、
はてなブックマーク件数取得APIとは違って、del.icio.us の Posts APIは自分のブックマークを
管理するための API であり、自分のブックマークに登録していない URL については、
他人の登録件数も取得できない模様。

(1) 通常の HTML モードなら件数を確認できる
http://del.icio.us/url/761cde1befb37de80ac8ec4566417d38
    ⇒『this url has been saved by 15 people.』とか
(2) BASE64(→MD5)演算が面倒ならクエリ変数指定でも確認できる
http://del.icio.us/url?url=http://www.kawa.net/xp/index-j.html
(3) API 経由だと、自分のブックマークに登録されていないと確認できない
http://del.icio.us/api/posts/get?url=http://www.kawa.net/xp/index-j.html

del.icio.us 的には推奨されなそうけど、↓でブックマーク登録件数を取得してみた。
通常の HTML モードのページを取得して、件数の値だけを利用します。

use Digest::MD5;
use LWP::UserAgent;

print &count_delicious('http://www.kawa.net/xp/index-j.html');

sub count_delicious {
    my $url = shift;
    my $md5 = Digest::MD5::md5_hex( $url );
    my $get = 'http://del.icio.us/url/'.$md5;
    my $ua = LWP::UserAgent->new();
    my $res = $ua->get( $get ) or return;
    my $html = $res->content() or return;
    my $count = ( $html =~ m#<h4[^>]*>[^<>]*this url has been saved by\D+(\d+)#s )[0];
    $count;
}

せっかく送ってもらった件数の値以外の情報は破棄するので、申し訳ない限り。
API の説明では「クエリ間に最低1秒ウェイトを入れてね」とのこと。
また「User-Agent:ヘッダを付けてね」と書いてあるので、それに準拠したほうが良いか。
どちらにしろ、del.icio.us なのにあんまり美味しくない。

設定テーマ

関連テーマ 一覧

月別リンク

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(5件)

内 容 ニックネーム/日時
(2) は BASE64 じゃなくて MD5 だと思います。
del.icio.us も件数取得できるようになるといいですよね。
YAMAMOTO Yohei
2006/03/17 08:38
コメントありがとうございます。(わーい、山本さんだ)
寝ぼけてました。BASE64でなくて、MD5です。
ソースでは Digest::MD5 使ってたのに。修正しました。
del.icio.us は結構な数の URL を保有していると思いますが、
MD5 で管理していて、値が衝突したりしてないのか心配です。
ゆうすけ
2006/03/17 12:34
はじめまして。この記事のソースを利用して、
Plagger用のプラグインを作ったのですが公開しても大丈夫でしょうか?
33rpm
2006/08/08 15:53
僕としては、問題ないですよ〜。ご自由にどうぞ。
ただし、あんまり連続で実行すると、del.icio.usからIPブロックされるのでご注意。
ゆうすけ
2006/08/08 16:20
こんな面倒な(無駄の多い)手順を踏まなくても、
今では JSON 形式でブックマーク件数やタグ情報を取得できる API が
公開されていますね。
http://del.icio.us/help/json/url
ゆうすけ
2007/01/05 01:28

コメントする help

ニックネーム
本 文

EDGE Now!