输入:读取并初步处理后的数据
输出:用户会话
import pandas as pd;
import os;
# 加载数据
logPath = os.path.join(os.getcwd(), 'log', 'logs');
logs = pd.read_pickle(logPath);
# 筛选GET请求
logs = logs[logs['Method']=='GET']
# 筛选响应2XX的记录
logs = logs[logs['Status'].str.match(r'2\d{2}')]
# 删除资源文件访问记录
logs.drop(logs[logs['Url'].str.contains('.gif|.png|.jpg|.js|.css')].index, inplace=True)
# 提取Url中的路径
def getPath(data):
return data.split('?')[0];
# 提取Url路径
logs['Url'] = logs['Url'].map(getPath)
# 提取Reference路径
logs['Reference'] = logs['Reference'].map(getPath)
# 重新排序
logs.reset_index(drop=True, inplace=True);
# 数据清洗步骤结束了,我们将最终的结果输出
outputPath = os.path.join(os.getcwd(), 'log', 'logs_handled');
logs.to_pickle(outputPath);
下一个阶段,我们要根据清理后的访问记录生成网络的拓扑结构并且执行用户识别以及会话识别步骤。
本文由 Frank采用 署名 4.0 国际 (CC BY 4.0)许可
Made with ❤ and at Hangzhou.