忙乎了一天。把爬蟲分析完全自動化的系統(tǒng)搭建了起來。以后每天爬蟲的數(shù)據(jù)自動發(fā)到郵箱中。效果如下(數(shù)據(jù)為測試數(shù)據(jù),不具有任何參考性。)

大致流程:(均為linux系統(tǒng))
1.根據(jù)ua(這邊假設(shè)為百度),將日志中的爬蟲日志單獨(dú)拆分到baidu.log(只存當(dāng)天的,節(jié)約主服務(wù)器的空間)
2.將baidu.log同步到另外日志分析服務(wù)器上,通過sftp下載
3.根據(jù)日期重命名為{date}.log
4.拆分出各種數(shù)據(jù),輸出到數(shù)據(jù)文件
5.從數(shù)據(jù)文件中讀取前X行,生成html代碼
6.通過formail發(fā)送到指定收件人。
一些注意點(diǎn)
1.sftp遠(yuǎn)程登陸的時候需要交互密碼,用過ssh-keygen生成公鑰scp上傳到遠(yuǎn)程服務(wù)器端的就可以跳過這個步驟。
2.分析數(shù)據(jù)的時候注意效率問題。多使用數(shù)組和臨時文件,尤其是日志量很大的時候(比如分析200,301,302,404等數(shù)量的時候)
3.通過find命令的-ctime參數(shù)可以快速找出x天前或者x天內(nèi)的文件,便于整理和分析。例如分析7天內(nèi)的數(shù)據(jù)(周報),或者清理30天前的日志(節(jié)約磁盤空間)
4.我寫的腳本基本沒考慮容錯,所以經(jīng)常冒出來一些小問題,需要不斷的調(diào)試改進(jìn)。
5.formail的charset設(shè)置為utf-8,就可以發(fā)送中文的郵件了。
6.通過ed命令可以在行首插入文本。具體做法 (echo ‘0a’;echo ‘TEXT’;echo ‘.’;echo ‘wq’) | ed -s FILENAME 這樣head取出來的數(shù)據(jù),后期拿數(shù)據(jù)源在excel中做報表的時候方便。(其他再運(yùn)行個tail也可以。寫上面那句話的時候覺得自己犯2了)
TEXT為需要插入的文本。
FILENAME為需要被插入的文件。
本文地址:http://www.imyexi.com/?p=673
-
廣告合作
-
QQ群號:4114653