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も利用した解析を行ってください。


IPv6基礎検定

YouTubeチャンネルやってます!