pukiwkiのリンク元を解析とか。

なんとなくしてみたくなったので書いてみた。

#!/usr/bin/perl -w

# pukiwikiのアクセスを簡単に解析してみる。(あまり期待しない)
# perl pukiwiki.pl < pw.log > result
use strict;

my %name;
my %sum;

while (<>) {
  if (/^200/) {
    my @array = split / \t/, $_;
    if ( $array[2] eq "N/A" ) {
      if ($array[4] =~ m@http://.*?/(.*?)/.*@ ) { # http://foo/barのbarを取得
        my $string = $1;
        $name{$string}++;
        $sum{$string} += $array[3];
      }
    } else {
      if ($array[5] =~ m@http://.*?/(.*?)/.*@ ) {
        my $string = $1;
        $name{$string}++;
        $sum{$string} += $array[4];
      }
    }
  }
}

foreach ( reverse sort{$sum{$a} <=> $sum{$b}} keys %name ) {
  printf ("UniqURLs:%10s:sum:%10s:%s\n", $name{$_}, $sum{$_}, $_);
}

これをxyzzywikiのRecentChangesのリンク元でやってみると、

UniqURLs:         3:sum:       506:~honami
UniqURLs:        65:sum:       349:tamago_girai
UniqURLs:         3:sum:       200:i9N
UniqURLs:         4:sum:       197:~takeshou
UniqURLs:         2:sum:       182:takeshou
UniqURLs:         2:sum:        80:xyzzy
UniqURLs:         2:sum:        73:mich
UniqURLs:         1:sum:        66:southly
...

みたいになる。まぁあまり考えていないので、正確には取れないのだが、大体の傾向ということで。