python网站访问日志分析_python分析apache网站日志web日志的代码
python分析apache网站日志的代码
1、分析日志的python框架awk.py 代码示例:
#
# Custom awk.py module
#
class controller:
def __init__(self, f):
self.m_file = f
self.m_handlers = []
def subscribe(self, o):
self.m_handlers.append(o)
def run(self):
for o in self.m_handlers:
o.begin()
s = self.m_file.readline()
while s != "":
for o in self.m_handlers:
o.process_line(s)
s = self.m_file.readline()
for o in self.m_handlers:
o.end()
def print_results(self):
print "Results:"
for o in self.m_handlers:
print "------------------------------------------------------"
print o.description()
print "------------------------------------------------------"
print o.result()
2、统计日志的点击量count_line.py 代码示例:
# Standard sys module
import sys
# Custom awk.py module
import awk
class count_lines:
def begin(self):
self.m_count = 0
def process_line(self, s):
self.m_count += 1
def end(self):
pass
def description(self):
return "# of lines in the file"
def result(self):
return self.m_count
#
# Step 1: Create the Awk controller
#
ac = awk.controller(sys.stdin)
#
# Step 2: Subscribe the handler
#
ac.subscribe(count_lines())
#
# Step 3: Run
#
ac.run()
#
# Step 4: Print the results
#
ac.print_results()
3、使用方法是shell中执行 代码示例:
# cat apachelog.log|
python count_lines.py
4、统计浏览次数超过n次的访问者 visitors.py 代码示例:
import re;
import sys
imort awk
class return_visitors:
def __init__(self, n):
self.m_n = n;
self.m_ip_days = {};
def begin(self):
pass;
def process_line(self, s):
try:
array = s.split();
ip = array[0];
day = array[3][1:7];
if self.m_ip_days.has_key(ip):
if day not in self.m_ip_days[ip]:
self.m_ip_days[ip].append(day);
else:
self.m_ip_days[ip] = [];
self.m_ip_days[ip].append(day);
except IndexError:
pass;
def end(self):
ips = self.m_ip_days.keys();
count = 0;
for ip in ips:
if len(self.m_ip_days[ip]) > self.m_n:
count += 1;
self.m_count = count;
def description(self):
return "# of IP addresses that visited more than %s days" % self.m_n;
def result(self):
return self.m_count;
ac = awk.controller(sys.stdin)
ac.subscribe(return_visitors(2))
ac.run()
ac.print_results()
# cat
apachelog.log|python visitors.py
5、按照域名统计访问量domain.py 代码示例:
import re;
import sys
imort awk
class referring_domains:
def __init__(self):
self.m_domains = {};
def begin(self):
pass;
def process_line(self, line):
try:
array = line.split();
referrer = array[10];
m = re.search('//[a-zA-Z0-9\-\.]*\.[a-zA-z]{2,3}/',
referrer);
length = len(m.group(0));
domain = m.group(0)[2:length-1];
if self.m_domains.has_key(domain):
self.m_domains[domain] += 1;
e
lse:
self.m_domains[domain] = 1;
except AttributeError:
pass;
except IndexError:
pass;
def end(self):
pass;
def description(self):
return "Referring domains";
def sort(self, key1, key2):
if self.m_domains[key1] > self.m_domains[key2]:
return -1;
elif self.m_domains[key1] == self.m_domains[key2]:
return 0;
else:
return 1;
def result(self):
s = "";
keys = self.m_domains.keys();
keys.sort(self.sort);
for domain in keys:
s += domain;
s += " ";
s += str(self.m_domains[domain]);
s += "\n";
s += "\n\n";
return s;
ac = awk.controller(sys.stdin)
ac.subscribe(referring_domains())
ac.run()
ac.print_results()
#
cat apachelog.log|python domain.py
python网站访问日志分析_python分析apache网站日志web日志的代码相关推荐
- apache+php配置网站访问后,不能跳转网站首页,只显示网站目录下的文件
apache+php配置网站访问后,不能跳转网站首页,只显示网站目录下的文件 apache的配置文件缺少配置项 修改apache2/conf/httpd.conf,找到以下配置,添加index.php ...
- python模拟访问js_百度统计原理分析-利用PHP/Python实现模拟访问
国内大多数站长可能都在用百度统计.统计的使用方法也很简单,只要在需要统计的页面底部加上统计代码即可.然后打开百度统计的后台,就能看到访客信息,包括入口页面,停留时间,跳出率等等,很是方便. 使用当然是 ...
- python访问数据库日志文件_python利用inotify实现把nginx日志实时写入数据库
利用了pyinotify库,我用的是这里的这个,外链网址已屏蔽 其实网上yum上也有pyinotify库可以安装. 写入数据库是pymysql这里做一下记录, 先务pyinotify实现一个tail ...
- python公司分析_Python分析6000家破产IT公司
前一阵有个字节跳动的程序员火了,年仅28岁实现了财务自由,宣布提前退休.最直接的原因是选择了一家发展前景很好的创业公司.当然平时我们经常能听到,某某人加入创业公司,xx年后公司上市,身价暴涨,财务自由 ...
- 日志分析,seci-log1.03增加了web日志分析,新增了多种告警
2019独角兽企业重金招聘Python工程师标准>>> 这篇文章是seci-log 开源日志分析软件的升级内容,之前的内容请查看之前的介绍,就不重复发了.我们在上次十种告警(非上班时 ...
- python刷今日头条访问量_Python 自动刷博客浏览量实例代码
怎么利用python爬取csdn博客访问量例子 如何使用python来爬取自己博客访问量承认吧,小编们都是在深夜里崩溃的俗人.晚安,世界. 博客网站上有访问量这个记录么 如果有就可以抓取网站下来,正则 ...
- python文件按时间排序_python按修改时间顺序排列文件的实例代码
python按修改时间顺序排列文件,具体代码如下所示: import os def sort_file_by_time(file_path): files = os.listdir(file_path ...
- python日志分析工具_基于Python3的Web日志分析小工具
PyWebLog 网站日志分析小工具 环境 Python3.5 Mysql 预览 安装 pip install pymysql pip install flask 导入日志 python Log.py ...
- python共享单车案例分析_python分析数据分析项目:共享单车租用情况影响因素探索分析...
python分析数据分析项目:共享单车租用情况影响因素探索分析
最新文章
- 2020年智能车竞赛由预赛赛道拼接成决赛赛道的方案
- 打印表格_表格怎么打印出来
- 论文笔记(SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation)
- 【论文笔记】node2vec:可扩展的网络特征学习
- LinkedList常用方法笔记
- struts+spring+mybatis介绍
- Python数学建模算法与应用(一、数学建模概论)
- 读书笔记 摘自:《硅谷钢铁侠:埃隆·马斯克的冒险人生》的笔记(作者: 【美】阿什利·万斯)
- 测试网卡芯片型号的软件,查看电脑无线网卡型号_查看无线网卡芯片型号
- AI制作ICON流程
- php关闭notice_php的notice怎么关闭
- arduino-esp32-点亮板载LED,闪烁LED。02
- 从零开始写高性能的人脸识别服务器(三)
- 企业网站怎么制作?企业网站制作,只需记住这8个步骤
- 马丁.福勒微服务架构博文译文
- 二维码解码器Zbar+VS2010开发环境配置(使用opencv库)
- Java基础巩固Day2作业
- 支付宝五福实现 核心代码
- 安装华为HCL(H3C)时报错及virtual box无法使用问题
- Poj百练 4110:圣诞老人的礼物-Santa Clau’s Gifts (分类:贪心)
热门文章
- 探求Floyd算法的动态规划本质
- 大学英语期末考计算机上答卷,英语期末考试总结范文(精选5篇)
- java restcontroller_Spring框架:@RestController与@Controller
- stretchblt 模糊_拼多多直播不显示画面?直播画面模糊怎么调整
- 防qq页面多边形html5,高仿QQ Xplan的H5页面
- python有趣的简单代码_简单代码一学就会,Python生成GIF动图
- 设计素材模板|春节要来了,素材准备好了么?
- 电商商家可以用到的小工具和素材资源网站
- ASN.1编解码:asn1c-ORAN-E2AP
- PUSHA/POPA