【技術(shù) 】手動分析網(wǎng)站訪問記錄

為什么手動分析

Anthony說網(wǎng)站訪問分析是門學問,相當復雜。我查了下,貌似大公司確實是有負責SEO和相關(guān)運維的人嫉鲸。
事實上撑蒜,目前有很多成熟的統(tǒng)計工具:如 Google Analytics歹啼、百度統(tǒng)計CNZZ座菠、淘寶的量子統(tǒng)計等等狸眼。

如何使用統(tǒng)計工具,根據(jù)它們提供的海量數(shù)據(jù)分析來進行分析浴滴,是需要長期摸索的拓萌。這次我只是想試試直接用Python分析SAE訪問日志access_log,看看4月5號的巨大流量到底是因為有學生無聊寫了爬蟲還是確實用戶黏性很大升略。


手動分析的思路

我注意到access_log的格式是相當工整的微王,每條訪問記錄為一行屡限。我個人認為每條記錄可分解為以下數(shù)據(jù):

主域名,我們的網(wǎng)站域名
用戶IP地址炕倘,包括 ip和 xxx
時間戳钧大,時區(qū)
代碼版本
請求method,如GET/POST/PUT
訪問路徑罩旋, 如 /online
http協(xié)議啊央、狀態(tài)碼傳輸內(nèi)容大小 涨醋。類似: HTTP/1.0 200 3751
訪客來源瓜饥,refer
瀏覽器類型,agent浴骂。這個是分析的重點乓土,估計要認真倒騰正則表達式
服務(wù)器名稱(?),應該是sae的服務(wù)器代碼

這樣靠闭,便可以將log格式化保存并分析帐我。
最佳思路
1.開個cron任務(wù)每天自動下載日志
2.將日志格式化處理,保存數(shù)據(jù)庫
3.對數(shù)據(jù)表進行分析
但是上述方法耗時巨大愧膀,花這精力不如折騰Google Analytics拦键!
簡化版思路
1.手動下載感興趣的日志
2.Python腳本處理日志,轉(zhuǎn)成列表&字典綜合體
3.需要分析什么東西檩淋,就寫相應的函數(shù)進行處理


實際操作

通過換行符空格來辨識數(shù)據(jù)芬为,我將log保存為IP、timestamp蟀悦、method媚朦、route、agent等列表日戈。

1.判斷是否有爬蟲

專業(yè)一點的爬蟲會不斷更換IP地址询张,不過我覺得這么專業(yè)的黑客才懶得爬我們的網(wǎng)站呢!
所以浙炼,我直接去統(tǒng)計各IP的訪問次數(shù)份氧,不就可以判斷了嘛~
相關(guān)代碼如下:

from collections import Counter
c = Counter(IP)
print c.most_common(20)

第一次接觸collections模塊,官方文檔見此弯屈,關(guān)于Counter的簡單介紹見此蜗帜。
如果不用上述方法,直接去統(tǒng)計列表中各元素出現(xiàn)次數(shù)并排序资厉,可是個不小的問題厅缺。參見啄木鳥社區(qū)的討論這篇還有這篇

2.統(tǒng)計iPhone/iPad和Android用戶分布

對了,不能忘了WP湘捎。我們不是支付婊诀豁!
一步步清洗數(shù)據(jù)時發(fā)現(xiàn),【瀏覽器欺騙】真的是太常見了窥妇!下面是一個WP的ua且叁,真是可憐!

"Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Nokia 925) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537 MicroMes
senger/6.0"

所以秩伞,想要篩選真實設(shè)備信息逞带,是需要大量 for-if-print嘗試的,不斷的邏輯推理和排查纱新,才能得出具有一定可信度的結(jié)論展氓。
初步結(jié)論如下

1.總pv為102306條
2.從微信中訪問的有93119條(MicroMessenger/
3.iPad訪問條數(shù)是2829
4.iPhone是26889(包含iPhone,不包含WP)
5.Android設(shè)備訪問次數(shù)是70752(包含Android脸爱,不包含WP遇汞。不知道還要排除誰)
6.從windows phone 訪問的有598條(Windows Phone)
7.從uc瀏覽器訪問的只有23條,是一個Nokia用戶

如果標記了該設(shè)備簿废,然后再統(tǒng)計去重IP地址空入,差不多就是設(shè)備數(shù)。(不考慮更換IP地址)
待續(xù)族檬。歪赢。。
有沒有人看呀5チ稀B窨!扫尖!

3.統(tǒng)計網(wǎng)絡(luò)狀態(tài)分布

2G/3G/4G/WIFI白对。因為不同網(wǎng)絡(luò)的標識亦不同,所以搞定到底是3G還是2G都是一門學問换怖。

1.包含NetType標識的請求有91497次(估計是微信6.x才加入的特性)
2.WIFI環(huán)境的請求有63591次
3."cmnet"請求8952次 //中國移動2G甩恼?
4."3G"請求8450次
5."3gnet"請求5042次 //中國聯(lián)通3G
6."2G"請求859次
7."ctnet"請求957次
8."ctwap"請求923次
9."uninet"請求532次 //中國聯(lián)通2G
10.其他請求2191次

麻痹的,累死我了沉颂。原始方法条摸,誰讓你不學正則!麻痹的兆览!說說結(jié)論:
wifi訪問占了三分之二強屈溉,2G訪問不到10%塞关。也有可能是2G網(wǎng)速差所以請求不夠多抬探,暫未分析2G設(shè)備數(shù)。

4.統(tǒng)計各頁面訪問情況

online,私信小压,主頁线梗,匹配。待續(xù)
【注】分析online時應排除翻頁時的POST請求怠益。

1.online被訪問了11762次仪搔,其中GET請求3905次。(' /online2'有空格蜻牢,NP++烤咧,排除refer的影響)
2.匹配被訪問了10336次。讓我吃驚的數(shù)據(jù)抢呆,目前功能和體驗都很差呀煮嫌!
3.用戶主頁被訪問了31534次。考慮翻頁請求抱虐,profile:online的比例終于有合理解釋了
4.私信發(fā)送了2478條昌阿。 MySQL語句獲得


參考資料

理論篇
深入理解HTTP協(xié)議
認識User Agent
【UserAgent的歷史變遷】小品文,我要笑哭起來了
【瀏覽器野史 UserAgent列傳】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恳邀,一起剝皮案震驚了整個濱河市懦冰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谣沸,老刑警劉巖刷钢,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異乳附,居然都是意外死亡闯捎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門许溅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓤鼻,“玉大人,你說我怎么就攤上這事贤重〔绲唬” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵并蝗,是天一觀的道長祭犯。 經(jīng)常有香客問我,道長滚停,這世上最難降的妖魔是什么沃粗? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮键畴,結(jié)果婚禮上最盅,老公的妹妹穿的比我還像新娘突雪。我一直安慰自己,他們只是感情好涡贱,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布咏删。 她就那樣靜靜地躺著,像睡著了一般问词。 火紅的嫁衣襯著肌膚如雪督函。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天激挪,我揣著相機與錄音辰狡,去河邊找鬼。 笑死垄分,一個胖子當著我的面吹牛搓译,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锋喜,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼些己,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嘿般?” 一聲冷哼從身側(cè)響起段标,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炉奴,沒想到半個月后逼庞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡瞻赶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年赛糟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砸逊。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡璧南,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出师逸,到底是詐尸還是另有隱情司倚,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布篓像,位于F島的核電站动知,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏员辩。R本人自食惡果不足惜盒粮,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奠滑。 院中可真熱鬧丹皱,春花似錦妒穴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弃甥。三九已至爽室,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淆攻,已是汗流浹背阔墩。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瓶珊,地道東北人啸箫。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像伞芹,于是被迫代替她去往敵國和親忘苛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎(第2版) 姜承堯 第1章 MySQL體系結(jié)構(gòu)和存儲引擎 >> 在上述例子...
    沉默劍士閱讀 7,417評論 0 16
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理唱较,服務(wù)發(fā)現(xiàn)扎唾,斷路器,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,110評論 25 707
  • 中國互聯(lián)網(wǎng)用戶群已經(jīng)成為世界最大的互聯(lián)網(wǎng)群體南缓。與此同時胸遇,中國互聯(lián)網(wǎng)網(wǎng)站的發(fā)展也歷經(jīng)了幾個階段,從單純的網(wǎng)絡(luò)媒體到現(xiàn)...
    零一間閱讀 4,257評論 1 41
  • 在日常生活中逗威,我們總是會有很多的憂慮。公婆生活方式不同岔冀,分歧太多庵楷;朋友發(fā)展太好,讓我們眼紅楣颠;同事心機好重尽纽,升遷太快...
    嚶說親子閱讀 369評論 0 3