[Home] [Kuri] [Blog] [Sysad] [Download] [Flash] [Profile] [Antena]

アクセスログから検索サイトのキーワードを解析する

概要

このプログラムは、WWW サーバのアクセスログに含まれる referer のうち、 Google および Yahoo の検索キーワードを抽出して、サマリーを出力する Perl スクリプトです。 自サイトのコンテンツが、検索サイトのどのようなキーワードによって参照されているかを解析するのに、役立つと思います。
私が試してみたところ、自分のものは大体予想通りの結果だったのですが、他人のログで試すと、意外なキーワードが上位に出てくることもありました。

注意事項

このプログラムはフリーソフトウェアです。
著作権は、
臼田 尚志 が保持します。
このプログラムの使用によるいかなる損害に対しても、作者は責任 を負いません。

変更の有無にかかわらず、再配布および利用は、以下の条件を満たしてい れば、行って頂いて結構です。

動作環境

少なくとも以下の OS で動作することを確認しています。
大抵の OS では動作すると思います。
ただし、Text::Iconv と Jcode が必要です。

ダウンロード

searchreferer-1.2.tgz

使用方法

書式

searchreferer.pl [-i][-t n][-c n][-p path]

説明

WWW サーバのアクセスログを標準入力から受けとり、集計したキーワードを標準出力に出力します。
アクセスログの形式は、apache でいうところの combined な形式を前提としています。

オプション

-i大文字と小文字を区別しません。
-t n出現頻度が n 位までの結果を出力します。
-c n出現頻度が n 回までの結果を出力します。
-p path指定した path だけの結果を出力します。

使用例

とりあえず全部の結果を見るには、以下のように実行します。
(ログは /var/log/httpd/access_log にあるとします。以下同文。)

  % ./searchreferer.pl < /var/log/httpd/access_log
  [Google/Yahoo の検索キーワード抽出結果 : すべて]

  [Google/Yahoo/MSN/Goo からのアクセス数]

    Google         736
    Yahoo          170
    MSN             46
    Goo             30
    <その他>      1050
    ------------------
    Total         2032

  [キーワード出現回数]

    linux                                          62
    ipchains                                       53
    postfix                                        40
    設定                                           38
    VPN                                            38
    java                                           38
  ...長いので後略

/foo/bar.html の結果だけを見るには、以下のように実行します。

  % ./searchreferer.pl -p /foo/bar.html < /var/log/httpd/access_log
 [Google/Yahoo の検索キーワード抽出結果 : /foo/bar.html]

  [キーワード出現回数]

    linux                                          53
    redhat                                         26
    rsh                                            23
    telnet                                         22
    Linux                                          21
  ...長いので後略

上位10位までの結果を、大文字小文字の区別なく集計するには、以下のように実行します。

  % ./searchreferer.pl -t 10 -i < /var/log/httpd/access_log
  [Google/Yahoo の検索キーワード抽出結果 : すべて]

  [Google/Yahoo/MSN/Goo からのアクセス数]

    Google         736
    Yahoo          170
    MSN             46
    Goo             30
    <その他>      1050
    ------------------
    Total         2032

  [キーワード出現回数(上位10)]

    linux                                          90
    vpn                                            65
    windows2000                                    59
    freebsd                                        56
    ipchains                                       55
    java                                           51
    postfix                                        46
    redhat                                         44
    設定                                           38
    telnet                                         35
    <その他>                                     1524
    -------------------------------------------------
    Total                                        2063

  -- 
   Generated by searchreferer.pl version 1.0

謝辞

適切なアドバイス等をしてくれた 山内氏 にものすごく感謝します。

履歴

2004/07/20:MSN と Goo を追加。
Google, Yahoo の際の文字コード変換のバグを修正。
2004/07/19:Text::Iconv を使うように変更。
Google のとき常に UTF-8 を前提とするように変更。
2003/04/11:初期バージョン(1.0)のリリース。

今後の予定