標籤:python 日誌
主題:如何使用 Python 分析 Web 存取日誌
內容
主講師:KK
多語言混搭工程師,熱愛開源技術,喜歡GET新技能,5年 PHP、Python 項目開發經驗,帶領團隊完成多個中、小型項目開發,對安全、雲等多個領域富有濃厚興趣,擅長於 WEB 安全開發、效能最佳化、分布式應用開發&設計等多方面,做事認真負責,樂於分享技能,現任 51Reboot.com Python 實戰班講師
任何語言都有使用情境,只有合適和不合適,沒有好壞。語言是工具,用來描述讓電腦如何工作,想法(思路&演算法)是基礎,也是重點。
字串
像姓名、一句話描述這樣的文
使用單引號、雙引號、三個單引號或三個雙引號引起來的一些字元
字串有哪些函數
字典定義
定義
使用大括弧包含
每個元素為key:value的格式
- 元素之間使用逗號分隔
練習
一、統計 list 中每個元素出現的次數
languages = [‘python‘, ‘java‘, ‘python‘, ‘c‘, ‘c++‘, ‘go‘, ‘c#‘, ‘c++‘, ‘lisp‘, ‘c‘, ‘javascript‘, ‘java‘, ‘python‘, ‘matlab‘, ‘python‘, ‘go‘, ‘java‘]
提示:
統計結果為 element:count 的形式,統計結果採用 dict 從左至右依次遍曆 list 中元素,判斷是否在 dict 中,如果不在則將 element 存入 dict 並設定 count 為 1,否則將 dict中element 對應的 count 加 1 後再儲存到dict中。
二、統計文章中每個英文字母出現的次數
article = ‘I was not delivered unto this world in defeat, nor does failure course in my veins. I am not a sheep waiting to be prodded by my shepherd. I am a lion and I refuse to talk, to walk, to sleep with the sheep. I will hear not those who weep and complain, for their disease is contagious. Let them join the sheep. The slaughterhouse of failure is not my destiny.‘
提示:判斷是否為英文單詞
- if (element > ‘a’ and element < ‘z’) or (element > ‘A’ and element < ‘Z’)
字典的 Key
Key 必須為不可變資料類型
數字
整數
浮點數
字串
布爾類型
列表 X
元組
子項目必須也不可變(“a”, “b”)
("a", ["b“]) X
- 字典 X
字典有哪些函數
檔案
自己在電腦上開啟 word 檔案的操作順序
在電腦盤符中找到對應的檔案
滑鼠雙擊開啟檔案(選擇查閱的工具)
查閱檔案內容/編輯檔案內容
如果有編輯檔案內容儲存檔案
- 關閉檔案
檔案操作
- 開啟檔案
- fhandler = open(path, mode, …)
- path 為檔案路徑
- mode 為開啟檔案方式及檔案類型
| mode |
開啟檔案方式 |
| r |
讀(預設) |
| w |
寫 |
| x |
建立並寫 |
| a |
追加 |
| r+ |
讀寫 |
| w+ |
寫讀 |
| x+ |
建立並寫讀 |
| a+ |
追加讀 |
時間
Web 存取日誌
Web 存取日誌日誌格式
127.0.0.1 - - [14/May/2017:12:45:29 +0800] "GET /index.html HTTP/1.1" 200 4286
遠程 - - 主機 IP 請求時間 時區 方法 資源 協議 狀態代碼 發送位元組
127.0.0.1 - - [14/May/2017:12:51:13 +0800] "GET /index.html HTTP/1.1" 200 4286 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36“
遠程主機 IP - - 請求時間 時區 方法 資源 協議 狀態代碼 發送位元組 referer 字元 瀏覽器資訊
Web訪問日誌日誌樣本
實戰
統計以下資料
需要根據IP擷取地理位置
每天的日誌中每行流量之和、總的流量之和(每天流量之和)
每種狀態代碼出現的次數
每天的不重複的IP的數量、總的不重複的IP數量(每天不重複的IP數量 之和???)
每天的日誌行數、日誌的總行數(每天的日誌行數之和)
統計每天的點擊量、總點擊數量
統計每天的瀏覽者數量、總瀏覽者數量
統計總狀態代碼分布
統計每天流量大小、總的流量大小
- 統計訪問地區分布及訪問次數 TOP20
運行
分析
按天統計
總統計
總日誌行數 = 每天日誌行數之和
- 總訪問者數量 = 所有出現 IP 組成的集合數量
地區分布
所有出現 IP 的訪問次數 排序取 TOP20
- 根據 IP 尋找地理位置
代碼
統計每天資訊
統計總資料
統計地區資料
列印結果
還可以做哪些?
網路直播分享
報名方式:加小助手(小月):1902433859 備忘公開課進入直播分享群
今晚九點|如何使用 Python 分析 web 訪問日誌?