先日Lynxでの訪問を発見した時に、このサイトを訪れてくださる方のブラウザについて調べてみたくなりました。
一日一度Webalizerで統計を取っているのですが、デフォルトの設定なのでブラウザはベスト15しか表示していません。
しかも、細かく分かれているため、上位はほとんどMSIE6.0の変形パターンしか出ていません。
今日のお昼休みは、10月3日以降のApacheのアクセスログのUSER_AGENTを調べてみることにしました。
もちろん手作業では無理なので、ここはPostgreSQLにがんばってもらいます。
プログラムを書いてもいいけれど、単純作業でできる方法を考えました。
(1)テーブルを作成
blog=> create table access_log(user_agent text);
(2)Apacheのaccess_logを上記acccess_logテーブルへinsertします。
blog=> \copy access_log from '/***/***/access_log'
(3)何件インサートされたか確認
blog=> select count(*) from access_log;
count
-------
15338
(1 row)
(4)" "(ダブルクオート2つのあいだに半角スペースひとつ)の直後に
USER_AGENTがあるのでsubstr関数でそこから後ろだけにします。
同時に最後の"(ダブルクオート)もtranslate関数で削除。
blog=> update access_log
blog-> set user_agent
blog-> = translate(substr(user_agent,position('" "' in user_agent )+3),'"','');
(5)これでブラウザの種類がaccess_logテーブルのuser_agent列にセットされました。
(6)いよいよカウント順に検索です。
blog=> count(*) as cnt,select user_agent
blog-> from access_log
blog-> group by user_agent
blog-> order by cnt desc;
user_agent | cnt
----------------------------------------------------------------+------
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; istb 702;) | 1877
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) | 1691
----(中略)----
JUGEM-Trackback (http://jugem.jp/) | 1
(243 rows)
うまくいきましたっ!!
結果はhttp://blog.kiyo.com/archives/user_agent.htmlに表形式にしてみました。
いちばん多いのは...きっと私本人のアクセスです(恥っ)。あとはWindows2000ユーザーの息子かも。
(apacheのアクセスログのデータすべてなので、息子のサイトへのアクセスも含まれているのです。)
2番目以降は普通に見ていいと思います:-)。
Lynxでのアクセスはほんの少しです。よく気付いたなぁー>自分(笑)。
OperaやFirefoxもがんばっていますよね!!
また時間のあるときにゆっくりながめたいと思います!
投稿者 megu : 2004年10月08日 19:55
