はてなRSS登録者数の取得

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

サンプルコード

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

close(LOGFILE);

exit;


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


IPv6基礎検定

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