忙乎了一天。把爬虫分析完全自动化的系统搭建了起来。以后每天爬虫的数据自动发到邮箱中。效果如下(数据为测试数据,不具有任何参考性。)
大致流程:(均为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为需要被插入的文件。
本文地址:http://www.imyexi.com/?p=673
-
广告合作
-
QQ群号:707632017