Top

Webalizerの漢字コード統一

突っ込み・指摘助言などがありましたら 掲示板までお願いします。
[追記 2007/07/11]
転送バイト数の集計がおかしくなるバグがありましたのでスクリプトを修正しました。 具体的には末尾の方で「$ref =~ s/\"/%22/g;」を追加し、リファラーに「"」が入らないようにしています。
Webalizerでログを処理させると、サーチエンジンで入力された文字列が Search Stringsの欄に表示されます。

しかし、Webブラウザやサーチエンジン毎に使用される漢字コードは違うのですが、 Webalizer自身は漢字コードの違いについてはまったく面倒を見てくれません。 結果として、同じキーワードが別カウントになったり、 複数の漢字コードが混在する結果文字化けして表示されたりします。

調べてみた所、

  1. webalizerにログを食わせる前に、 Jcode.pmを使った簡単なスクリプトでログを処理して漢字コードを統一する。 (Google等で「webalizer コード」等で検索するといくつかヒットします)
  2. webalizerにパッチを当ててwebalizer自体に処理させる。 (webalizerの検索語の日本語対応の話)
という解決方法がありましたが、個人的には次のように感じました。
  1. どうせならもっと複雑な処理をさせてもいいのではないか。
  2. Unicodeに対応してない。またwebalizerのパッケージを作り直すのも、 Debianパッケージの利用に慣れてしまった身には面倒。
ということで「色々と凝ったコード変換その他を行うperlスクリプト」を作成してみました。 以下の特徴があります。

Webalizerに日本のサーチエンジンを追加

上記のように Webalizer は SearchEngine ディレクティブでサーチエンジンの設定を行います。 いくつかの代表的なサーチエンジンについては標準の webalizer.conf に最初から設定されていますが、 日本国内のサーチエンジンについてはまったく登録されていないので追加設定する必要があります。 (さもないとSearch Stringsの欄にはほとんど何も表示されません)

以下が設定例です。 私のサイトにきているサーチエンジンについてのみ調査したので抜けはあるかと思います。

SearchEngine    google.co.jp            q=
SearchEngine    search.yahoo.co.jp      p=
SearchEngine    goo.ne.jp               MT=
SearchEngine    infoseek.co.jp          qt=
SearchEngine    search.msn.co.jp        q=
SearchEngine    search.nifty.com        Text=
SearchEngine    search.biglobe.ne.jp    q=
SearchEngine    cache.yahoofs.jp        w=

hiramoto@flatray.com (平本 光二/HIRAMOTO Kouji)