Google Reader RSS登録者数の取得
Web系RSSリーダーであるGoogle ReaderのUser Agent部分を見ると、Google ReaderでのRSS登録者数を知ることが出来ます。 ここでは、ApacheのアクセスログからGoogle ReaderでのRSS登録者数を抽出する方法を説明します。
サンプルコード
Perlでのサンプルコードです。 Google ReaderがRSSの更新を確認しに来たログから、購読者数を抽出しています。
#!/usr/bin/perl
open(LOGFILE, "access_log.txt") || die $!;
while (<LOGFILE>) {
/^([^ ]*) ([^ ]*) ([^ ]*) \[([^\]]*)\] "([^"]*)" ([^ ]*) ([^ ]*) "([^"]*)" "([^"]*)"/;
$remotehost = $1;
$fromidentd = $2;
$remoteuser = $3;
$datetime = $4;
$httprequest = $5;
$httpstatus = $6;
$databytes = $7;
$refer = $8;
$useragent = $9;
if ($useragent =~ /^Feedfetcher-Google/) {
if ($useragent =~ /; ([^ ]*) subscribers;/) {
$subscribers = $1;
print "subscribers=" . $subscribers . "\n";
}
}
}
close(LOGFILE);
exit;
ログ中のエントリ毎に登録者数が変化している可能性があるので注意して下さい。 また、一つのログ中に複数のRSS URLが含まれている場合、上記サンプルでは混ざって表示されてしまいます。 必要に応じてRSSのURLも利用した解析を行ってください。