2004-12-02

用正则表达式和grep对网站日志进行分析

这两天,手里的项目总算都差不多了,我总算有了点时间看看书。看了看编译原理的书,对正则表达式,自动机有了一些粗浅的认识,突然想起来可以用正则表达式来分析分析我的网站日志啊!

分析什么好呢?就分析一下每天有多少人通过google搜索来吧!

写一个正则表达式,用grep来查询
grep http://www"."google"."com/search.*\n ex041129.log
这样日志那行里面有http://www.google.com/search,就会被提取出来

如果我们只想看他搜索的地址,可以用-o参数,这样,就会只看到匹配串
grep -o http://www"."google"."com/search.*\n ex041129.log

如果我们想知道有多少条google的访问记录呢,加上-c参数即可
grep -c http://www"."google"."com/search.*\n ex041129.log

这时候,出现了另一个问题,我们找到的地址都是行如
http://www.google.com/search?q=%E4%BA%8C%E6%9C%88%E6%B2%B3%E5%B0%8F%E8%AF%B4%E4%B8%8B%E8%BD%BD&hl=zh-CN&lr=lang_zh-CN&inlang=zh-CN&newwindow=1&start=10&sa=N
我们根本不知道搜索的是什么,怎么办呢?写一个程序来转换吧!

代码如下:

utf8 url转码代码
源码下载 utf8url.c

上 面那个google地址转换后是http://www.google.com/search?q=二月河小说下载&hl=zh-CN& amp; amp; lr=lang_zh-CN&inlang=zh-CN&newwindow=1&start=10&sa=N。

把这个源码用任意支持ansi C的编译器编译以后,我们得到了一个工具utf8url.exe。

我们的命令行变成
grep -o http://www"."google"."com/search.*\n ex041129.log | utf8url 〉google.txt

这样一条命令就可以知道有多少google来客了,^_^。

如果没有记错的话,win2k服务器版自带grep,如果你是其他版本的windows可以利用我的朋友yayv做的简单的win下的linux工具箱,里面包含了grep等linux常用工具的windows版本。

linux工具箱下载地址:bin.rar

utf8url下载地址:utf8url.exe

请不要吝惜您的评论,每一条评论,都是我在漫漫长夜前行的力量

1 条评论:

Blogger 国外虚拟主机 说...

博客管理员已删除此帖。

10:42 上午

 

发表评论

<< 主页