爬虫日志分析自动化

忙乎了一天。把爬虫分析完全自动化的系统搭建了起来。以后每天爬虫的数据自动发到邮箱中。效果如下(数据为测试数据,不具有任何参考性。)

大致流程:(均为linux系统)

1.根据ua(这边假设为百度),将日志中的爬虫日志单独拆分到baidu.log(只存当天的,节约主服务器的空间)

2.将baidu.log同步到另外日志分析服务器上,通过sftp下载

3.根据日期重命名为{date}.log

4.拆分出各种数据,输出到数据文件

5.从数据文件中读取前X行,生成html代码

6.通过formail发送到指定收件人。

一些注意点

1.sftp远程登陆的时候需要交互密码,用过ssh-keygen生成公钥scp上传到远程服务器端的就可以跳过这个步骤。

2.分析数据的时候注意效率问题。多使用数组和临时文件,尤其是日志量很大的时候(比如分析200,301,302,404等数量的时候)

3.通过find命令的-ctime参数可以快速找出x天前或者x天内的文件,便于整理和分析。例如分析7天内的数据(周报),或者清理30天前的日志(节约磁盘空间)

4.我写的脚本基本没考虑容错,所以经常冒出来一些小问题,需要不断的调试改进。

5.formail的charset设置为utf-8,就可以发送中文的邮件了。

6.通过ed命令可以在行首插入文本。具体做法 (echo 0a ;echo TEXT ;echo . ;echo wq ) | ed –s FILENAME 这样head取出来的数据,后期拿数据源在excel中做报表的时候方便。(其他再运行个tail也可以。写上面那句话的时候觉得自己犯2了)

TEXT为需要插入的文本。

FILENAME为需要被插入的文件。

(这一点都不邪恶。。)