python项目练习——7.网站访问日志分析器

项目功能分析:

这个项目可以读取网站的访问日志文件,统计访问量、独立访客数、访问来源等信息,并以图表或表格的形式展示出来。这个项目涉及到文件操作、数据处理、数据可视化等方面的技术。

示例代码:

import re

from collections import Counter

import matplotlib.pyplot as plt

def parse_log_file(log_file):

读取日志文件内容

with open(log_file, 'r') as file:

logs = file.readlines()

解析日志文件并统计访问来源

user_agents = \[\]

referrers = \[\]

for log in logs:

使用正则表达式提取用户代理和引荐来源信息

user_agent_match = re.search(r'"(\^"*)"', log)

referrer_match = re.search(r'"(\^"*)"$', log)

if user_agent_match:

user_agents.append(user_agent_match.group(1))

if referrer_match:

referrers.append(referrer_match.group(1))

return user_agents, referrers

def plot_statistics(data, title, xlabel, ylabel, rotation=None):

绘制柱状图

plt.figure(figsize=(10, 6))

plt.bar(data.keys(), data.values(), color='skyblue')

plt.xlabel(xlabel)

plt.ylabel(ylabel)

plt.title(title)

if rotation:

plt.xticks(rotation=rotation)

plt.tight_layout()

plt.show()

if name == 'main':

log_file = 'access.log' # 替换为你的网站访问日志文件路径

user_agents, referrers = parse_log_file(log_file)

统计用户代理

user_agent_counts = Counter(user_agents)

plot_statistics(user_agent_counts, '用户代理分布', '用户代理', '访问次数')

统计引荐来源

referrer_counts = Counter(referrers)

plot_statistics(referrer_counts, '引获来源分布', '引获来源', '访问次数', rotation=90)

代码逻辑分析:

首先定义了一个函数 parse_log_file(),它接受一个日志文件路径作为参数,读取日志文件内容,并使用正则表达式解析日志文件,提取出用户代理和引获来源信息。然后,使用 Counter 类统计用户代理和引获来源的访问次数,并调用 plot_statistics() 函数绘制柱状图来展示统计结果。在主程序中,指定了网站访问日志文件的路径,并调用这两个函数来实现日志分析和数据可视化。

相关推荐
饼干哥哥2 小时前
开源Skills|搭建亚马逊动态关键词库系统,每天抓SSS级机会词
人工智能·深度学习·数据分析
荣码4 小时前
LangGraph多Agent协作:3个Agent干活比1个强,但我踩了4个坑
java·python
用户83562907805119 小时前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
宇宙之一粟1 天前
乐企版式文件生成平台
java·后端·python
倔强的石头_2 天前
企业工商数据源站点:无验证无拦截,批量获取工商数据完整方案
数据分析
学测绘的小杨2 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz3102 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐2 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱3 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot3 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle