Hatena::Grouprubyist

Rubyを勉強しようと思ってはじめた日記

2008-04-03

アクセス解析の結果を見ていると

| 23:40 | アクセス解析の結果を見ていると - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - アクセス解析の結果を見ていると - Rubyを勉強しようと思ってはじめた日記 アクセス解析の結果を見ていると - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

全然関係ないんだけれど、ログを見ていると

botとか、ゲートウェイとか色々とあるんだなあ。

Rubyでアクセス解析をする(0.2)正規表現で

| 23:13 | Rubyでアクセス解析をする(0.2)正規表現で - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - Rubyでアクセス解析をする(0.2)正規表現で - Rubyを勉強しようと思ってはじめた日記 Rubyでアクセス解析をする(0.2)正規表現で - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

アクセスログを後方参照でしっかり情報取得が出来ました。わー、正規表現はコピペでした。

正規表現

Rubyで正規表現を初めて使いました。Perlの演算子で書けるので、違和感なし。

PHPのときはちょっと面倒な感じがしたので、これはうれしいです。

正規表現で、文字コードを指定する必要があるのかな?これは初めて。

今後・検討事項

  • 得た結果をDBに流し込みたい
  • DBからデータを取得したい
  • 時間の部分はさらに分解?
  • UAの情報はどうしたらいいだろうか

コード

#!/usr/local/bin/ruby
print "Content-Type: text/html\n\n"

logfile = 'access_log'

File = open(logfile,'r')

while text = File.gets do
/^([^ ]*) ([^ ]*) ([^ ]*) \[([^]]*)\] "([^ ]*)(?: *([^ ]*) *([^ ]*))?" ([^ ]*) ([^ ]*) "(.*?)" "(.*?)"/u =~ text

print $1,'<br>'
print $2,'<br>'
print $3,'<br>'
print $4, '<br>'
print $5, '<br>'
print $6, '<br>'
print $7, '<br>'
print $8, '<br>'
print $9, '<br>'
print $10, '<br>'
print $11, '<br>'
print '<hr />'
end

File.close
カレンダー
2007 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2009 | 06 | 08 |