はてなexist API
はてなウェブサービスのひとつに、「はてなexist API」というのがあります。
任意のURLが、はてなダイアリー、はてなブックマークからどれだけ言及されているか、誰かのアンテナに登録されているか否か(2値)が取得できます。
今日はこれを使ってPerlの勉強(というほどでもないけど)をしました。
くだらないことでも「やってみること」が大事なわけですので。
#!/usr/bin/perl -w use strict; use LWP::Simple; use XML::Simple; use Data::Dumper; dbmopen(my %CACHE, "exist_api_cache", 0666) or die "cannot open 'exist_api_cache' dbm: $!"; my $target_url = shift or die "need target url\n"; my $base_url = "http://d.hatena.ne.jp/exist?mode=xml&url="; my $request_url = $base_url . $target_url; $CACHE{$request_url} = get($request_url) unless ($CACHE{$request_url}); print "request:\n$request_url\n"; print "reaponse:\n$CACHE{$request_url}\n"; my $ref = XMLin($CACHE{$request_url}); print "Dump:\n"; print Dumper($ref); for (keys %{$ref->{count}}) { print "$_: ", $ref->{count}->{$_}->{content}, "\n"; }
ポイント
こんだけ。
LWP::Simple::getの代わりにmirrorを使えばDBMハッシュはいらなかったんじゃないか、と今になって気づく始末。
ま、いっか。これはこれで。
-
- -
LWP::Simple - simple procedural interface to LWP - metacpan.org
XML::Simple - An API for simple XML files - metacpan.org
Data::Dumper - stringified perl data structures, suitable for both printing and eval - metacpan.org