$useridのブックマークのタグを取得。
#!/usr/bin/perl use strict; use warnings; use HatenaBookmark::Number; #my director use XML::FeedPP; use Data::Dumper; use Array::Uniq; my $userid = "infinity_th4"; my @user = ($userid); sub gettag { my (@user) = @_; my @tags = (); my $allnum = HatenaBookmark::Number::allnum(@user); #ユーザーのすべてのブックマーク数 for (my $i=0;$i < $allnum;$i = $i+20){ #tagを取得 #? my $source = 'http://b.hatena.ne.jp/'.$userid.'/atomfeed?of='.$i; my $feed = XML::FeedPP->new( $source ); foreach my $item ( $feed->get_item() ) { my @feedtags = $item->get("dc:subject"); foreach my $tag (@feedtags){ if(defined($tag)){ push(@tags,$tag); } } @tags = uniq sort {"\L$a" cmp "\L$b"} @tags; #重複削除 } } return @tags; } #Get tag of $userid. print Dumper gettag(@user);
これでは、http://b.hatena.ne.jp/infinity_th4/にあるタグの数に一致しない。
なぜなら、atomfeedでは、
例えば、Mysqlとmysqlを区別している。
しかし、http://b.hatena.ne.jp/infinity_th4/では、Mysqlとmysqlを同一視している。
lc()をつかって同一視をなくす。