一、需求分析
网站访问日志是用户在访问网站服务器时产生的事件记录(log),通常记载着时间、日期、使用者及动作等相关操作的描述。在大数据时代,我们应当抓取并利用这些日志中有价值的信息,这样我们才能更好的了解网站的运行情况并做出相应的优化,甚至为公司营销策略提供依据。
在本项目中,我们提取了网站访问日志中有价值的信息,如:用户IP、访问时间、请求链接、请求状态、来源链接、用户操作系统、浏览器等。对这些数据进行处理分析,得到网站的运行情况、安全情况、运营情况以及网站的用户信息等。最终通过数据分析,得出相应的结论或提出相应的优化策略。
二、数据集构成分析
1、 access.log
包含:IP地址,访问时间,请求链接,访问状态,字节数,访问来源,用户信息
2、 ip.txt
包含:IP地址起点,IP地址终点,地点,网络运营商
三、数据处理分析:
1、 预处理access.log(Python)
由于日志文件中无法获得独立用户(UV)的cookie id,实验中判断UV的方式是:IP和用户信息。在存储时只需要保留两项信息相同,且访问时间最早的log,即可获得最终的UV。考虑到原数据集中的时间精度可能不满足上述要求,无法找出“最早log”,所以在每一条log前添加了自增长的id。
2、 创建原数据表导入数据
web_access_log_content:access.log
web_ip_content:ip.txt
3、 提取日志各个属性
新建表 web_access_log_0 存储access.log文件中提取到的各项属性信息
从web_access_log_content表中利用正则式提取各项属性。
其中ip_1表示IP的第一个数,ip_num存储IP的十进制数。这样将IP转为十进制数是为了在后续获取相应地点和网络运营商时方便关联两个表。
4、 提取IP属性
建立web_ip_info存储ip.txt中的各项属性信息,其中ip_start_1表示IP中的第一个数。
同样,在该表中IP起点和IP终点都是作为十进制数存储的,地点和运营商也依据正则表达式进行提取。
5、 在log中增加地点、运营商和访问链接信息
新建表web_access_log_1存储关联后的结果,新增属性city,company
再将地名和网络供应商的名称规范后的表存为web_access_log_2,同时加入访问链接url信息,其中网络供应商只分为四类:移动、联通、电信、其他。
6、 提取访问时间和来源链接
新建表web_access_log_3,新添加属性access_hour, ref_type
7、 处理用户(客户端)信息
新建表web_access_log_4,新添加属性client_browser, client_type
client_browser:用户使用的浏览器;
client_type:用户使用的操作系统;
至此,所有的信息已合并完全。
8、 获取UV表(即:用户第一次访问)
通过自关联,判断IP、用户信息和自增id来确定UV,同时建立web_access_log_first表来存储UV。
9、 获取最热访问链接
记录访问链接的前10名为最热访问链接,存在web_access_log_url_top表中。
10、 获取IP黑名单
新建表web_access_log_ip_black存储IP黑名单;
黑名单条件:无效访问次数>50。