このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

PostProcessor Sample

発言者:田中求之
( Date Friday, March 08, 1996 14:58:24 )


WebSTAR ではページのデータを送り出した後に処理を行う PostProcessor を
利用できるようになっています。

以下に記すのは、一時期私が使用していた PostProcessor のスクリプトです。
これは、アクセスの referer をチェックして、どのページから私のサーバーへ
飛んできたのかを調べる、つまり、私のサーバーに対してリンクを張っている
ページを自動的に調べてやろうという目的で動かしていたものです。

property myRecord : "" --- 記録用ファイルのパスを設定しておく

on idle
  return 86400 -- 余分な idle を発行させないため
end idle

on ヌevent WWWスsdocネ path_args ツ
  given ヌclass scnmネ:script_name, ヌclass refrネ:referer
  
  try
    if ".html" is in script_name or script_name is "/" then
      if referer is not "" and ".htm" is in referer then
        if ("mtlab" is not in referer and "157.6." is not in referer) then
          appendToFile referer & return to file myRecord
        end if
      end if
    end if
  on error
  end try
end ヌevent WWWスsdocネ


if が3段重ねになっていますが、これは余分な referer を記録しないための
フィルタリングです。

最初の if ".html" ... によって、ページへのアクセスだけをチェックするように
しています(画像ファイルのリクエストは無視する)。

2段目の if refere ... によって、referer (リンク元) の情報があることと、
それがページであることを確認しています(検索エンジンからのリンクをカットする)。
実際は、この部分はもう少し細かい条件判断を行っていたのですが、省略しています。

3段目の if  ("mtlab"... によって、私のサーバー内部でのリンクをカットして
います。

以上のフィルタリングを経て取り出された referer を、単純にファイルに追記で
書き込むようになっています。書き込むファイルは property であらかじめ
パスを設定しておきます。また、エディタなどであらかじめファイルを作成して
おく必要があります。

PostProcessor の場合は、WebSTAR に対して reply を行いませんので、
単純に処理だけのスクリプトでいいわけです。


この PostProcessor によって記録されたものを、Sortf や JGAWK などで
処理して集計をやってました。ソートして重複を省く(いわゆるユニーク)こと
で、リンク元を集めることができます。最初は嬉しくてやってたのですが、その
うち、数が多くなって面倒になってやめてしまいましたが (^_^;;

何かの参考になれば幸いです。