WebService::Hatena::BookmarkCount モジュールは、
はてなブックマーク件数取得API にアクセスして、
指定したURLの被ブックマーク件数を取り出します。
カンタンなメソッド1つで呼び出せるため、XML-RPC に関して勉強する必要がありません。w
有用な情報を便利なインターフェースで提供してくれているはてなに感謝します!
本モジュールの使用には、
XML::TreePP モジュールと、
LWP::UserAgent または
HTTP::Lite のいずれかのモジュールが必要です。
Perl 5.005/5.6.x/5.8.x で動きます。
Pure Perl実装のため、コンパイル不要で手軽に利用できます。
公開版アーカイブ:
WebService-Hatena-BookmarkCount-0.07.tar.gz
TARGZ
CPAN
←通常パッケージ
最新版ソースファイル:
WebService/Hatena/BookmarkCount.pm
PM
Subversion レポジトリ:
http://kawanet.googlecode.com/svn/lang/perl/WebService-Hatena-BookmarkCount/trunk/
SVN
getCount() メソッドに URL を渡すと、 {キー:URL、値:件数}のハッシュを返します。
use WebService::Hatena::BookmarkCount; my @list = ( 'http://www.hatena.ne.jp/info/webservices', 'http://www.kawa.net/xp/index-j.html', ); my $hash = WebService::Hatena::BookmarkCount->getCount( @list ); foreach my $url ( @list ) { printf( "%5d %s\n", $hash->{$url}, $url ); }
大事なのは getCount() の1行だけです。すこぶるカンタンですね。
結果は以下のように表示されます。
200 http://www.hatena.ne.jp/info/webservices 106 http://www.kawa.net/xp/index-j.html
このモジュールのソースは短いです。
内部処理については、
こちら の方が分かりやすいでしょう。
ちなみに、
はてなexist API用の
WebService::Hatena::Exist モジュールでは、
はてなダイアリー・はてなアンテナ・はてなブックマークの3つの情報を得られますが、
取得対象 URL を都度指定する仕様の REST インターフェースのため、
1回の通信につき1URL ずつの処理に限られます。
WebService::Hatena::BookmarkCount では、
はてなブックマークに特化した XML-RPC API 経由を利用することで
複数の URL の情報を一括取得します。
このため、複数の件数を連続取得する場合もはてなサーバへの負荷が軽くなります。
getTotalCount() メソッドに URL を渡すと、 前方一致?でマッチした全ページのブックマーク件数合計値を返します。 ドメイン単位での総ブックマーク件数を取得できます。
use WebService::Hatena::BookmarkCount; my $url = 'http://www.kawa.net/'; my $count = WebService::Hatena::BookmarkCount->getTotalCount( $url ); printf( "%5d %s\n", $count, $url );
以下のような結果が表示されます。(引数は1URLごと呼ぶ点に注意!)
1919 http://www.kawa.net/
詳しくは、 こちら も参照してください。