Livedoor Reader RSS登録者数の取得

Web系RSSリーダーであるLivedoor ReaderのUser Agent部分を見ると、Livedoor ReaderでのRSS登録者数を知ることが出来ます。 ここでは、ApacheのアクセスログからLivedoor ReaderでのRSS登録者数を抽出する方法を説明します。

サンプルコード

Perlでのサンプルコードです。 Livedoor 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 =~ /^livedoor FeedFetcher/) {
    if ($useragent =~ /; ([^ ]*) subscribers\)/) {
      $subscribers = $1;
      print "subscribers=" . $subscribers . "\n";
    }
  }
}

close(LOGFILE);

exit;


ログ中のエントリ毎に登録者数が変化している可能性があるので注意して下さい。 また、一つのログ中に複数のRSS URLが含まれている場合、上記サンプルでは混ざって表示されてしまいます。 必要に応じてRSSのURLも利用した解析を行ってください。


IPv6基礎検定

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