はてなブックマークタグ集計ランキング

はてなブックマークのタグを集計してランキング表示する。
404 Blog Not Found:最近のはてブで流行している7つのタグをそのまま真似て書いてみた。

#!/usr/bin/perl 
use strict;
use warnings;
use HTML::LinkExtor;
use XML::LibXML;
use Encode;

my $url = shift;

my %entry;
sub get_verbosely{
    use LWP::Simple;
    my $uri = shift;
    my $nonl = shift;
    return get($uri);
}

my $content = get_verbosely($url);
HTML::LinkExtor
    ->new(sub{
              my($tag, %link_of) = @_;
              return if $tag ne 'a';
              for my $attr (keys %link_of){
                  next if $attr ne 'href';
                  next if $link_of{$attr} !~ m{^/entry/};
                  my $uri = $link_of{$attr};
                  $uri =~ s,^/entry/,http://,o;
                  $entry{ $uri }++
              }
          })->parse($content);
my %keywords;
for my $uri (keys %entry){
    my $rss_uri = "http://b.hatena.ne.jp/entry/rss/" . $uri;
	my $con = get_verbosely($rss_uri, 1);
	my $tag = ($con =~ s{ <dc:subject>(.*?)</dc:subject> }
             { $keywords{ encode('utf-8', lc($1)) }++ }egx );
    	print STDERR "$tag keywords found\n";
}
my $order = 0;
for my $k (sort {$keywords{$b} <=> $keywords{$a}} keys %keywords){
    printf "%2d\t%4d\t%s\n", ++$order, $keywords{$k}, $k;
}