目录
网站的日志数据记录了所有Web对服务器的访问活动。本章主要讲解如何通过Python第三方库解析网站日志;如何利用pandas对网站日志数据进行预处理,并结合前面章节中的数据分析和数据可视化计数,对网站日志数据进行分析。
9.1数据来源
9.1.1网站日志解析
注:该数据集可以从从网上资源下载
网站日志数据是有对应格式的,这里需要通过apache-log-parser库对该数据进行解析,使其变为规范的数据结构。如下图 ,首先通过pip安装这个解析库
apache-log-parser解析库的使用方法很简单,首先需要了解该日志的格式,以此定义网站日志的数据格式,然后通过make_parser传入即可创建解析器,如图
注:各字段的含义可参考网站https://stackoverflow.com/questions/9234699/understanding-apache-acess-log上的说明
在log文件中提取一条日志,利用解析器去分析,如下图,可以看出,解析后的数据为字典格式
sample_string = 'koldunov.net 85.26.235.202 - - [16/Mar/2013:00:19:43 +0400] "GET /?p=364 HTTP/1.0" 200 65237 "http://koldunov.net/?p=364" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11" 0'
data = p(sample_string)
data
通过以下代码读取log文件,逐行进行读取并解析为字典,然后将字典传入列表中,以此构造DataFrame,如下图。这里提取感兴趣的几个字段,status为状态码,response_bytes_clf为返回的字节数(流量),remote_host为远端主机IP地址,requests_first_line为请求内容,time_received为时间数据。