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

print "Results:"

print

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日志的代码相关推荐

  1. apache+php配置网站访问后,不能跳转网站首页,只显示网站目录下的文件

    apache+php配置网站访问后,不能跳转网站首页,只显示网站目录下的文件 apache的配置文件缺少配置项 修改apache2/conf/httpd.conf,找到以下配置,添加index.php ...

  2. python模拟访问js_百度统计原理分析-利用PHP/Python实现模拟访问

    国内大多数站长可能都在用百度统计.统计的使用方法也很简单,只要在需要统计的页面底部加上统计代码即可.然后打开百度统计的后台,就能看到访客信息,包括入口页面,停留时间,跳出率等等,很是方便. 使用当然是 ...

  3. python访问数据库日志文件_python利用inotify实现把nginx日志实时写入数据库

    利用了pyinotify库,我用的是这里的这个,外链网址已屏蔽 其实网上yum上也有pyinotify库可以安装. 写入数据库是pymysql这里做一下记录, 先务pyinotify实现一个tail ...

  4. python公司分析_Python分析6000家破产IT公司

    前一阵有个字节跳动的程序员火了,年仅28岁实现了财务自由,宣布提前退休.最直接的原因是选择了一家发展前景很好的创业公司.当然平时我们经常能听到,某某人加入创业公司,xx年后公司上市,身价暴涨,财务自由 ...

  5. 日志分析,seci-log1.03增加了web日志分析,新增了多种告警

    2019独角兽企业重金招聘Python工程师标准>>> 这篇文章是seci-log 开源日志分析软件的升级内容,之前的内容请查看之前的介绍,就不重复发了.我们在上次十种告警(非上班时 ...

  6. python刷今日头条访问量_Python 自动刷博客浏览量实例代码

    怎么利用python爬取csdn博客访问量例子 如何使用python来爬取自己博客访问量承认吧,小编们都是在深夜里崩溃的俗人.晚安,世界. 博客网站上有访问量这个记录么 如果有就可以抓取网站下来,正则 ...

  7. python文件按时间排序_python按修改时间顺序排列文件的实例代码

    python按修改时间顺序排列文件,具体代码如下所示: import os def sort_file_by_time(file_path): files = os.listdir(file_path ...

  8. python日志分析工具_基于Python3的Web日志分析小工具

    PyWebLog 网站日志分析小工具 环境 Python3.5 Mysql 预览 安装 pip install pymysql pip install flask 导入日志 python Log.py ...

  9. python共享单车案例分析_python分析数据分析项目:共享单车租用情况影响因素探索分析...

    python分析数据分析项目:共享单车租用情况影响因素探索分析

最新文章

  1. 2020年智能车竞赛由预赛赛道拼接成决赛赛道的方案
  2. 打印表格_表格怎么打印出来
  3. 论文笔记(SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation)
  4. 【论文笔记】node2vec:可扩展的网络特征学习
  5. LinkedList常用方法笔记
  6. struts+spring+mybatis介绍
  7. Python数学建模算法与应用(一、数学建模概论)
  8. 读书笔记 摘自:《硅谷钢铁侠:埃隆·马斯克的冒险人生》的笔记(作者: 【美】阿什利·万斯)
  9. 测试网卡芯片型号的软件,查看电脑无线网卡型号_查看无线网卡芯片型号
  10. AI制作ICON流程
  11. php关闭notice_php的notice怎么关闭
  12. arduino-esp32-点亮板载LED,闪烁LED。02
  13. 从零开始写高性能的人脸识别服务器(三)
  14. 企业网站怎么制作?企业网站制作,只需记住这8个步骤
  15. 马丁.福勒微服务架构博文译文
  16. 二维码解码器Zbar+VS2010开发环境配置(使用opencv库)
  17. Java基础巩固Day2作业
  18. 支付宝五福实现 核心代码
  19. 安装华为HCL(H3C)时报错及virtual box无法使用问题
  20. Poj百练 4110:圣诞老人的礼物-Santa Clau’s Gifts (分类:贪心)

热门文章

  1. 探求Floyd算法的动态规划本质
  2. 大学英语期末考计算机上答卷,英语期末考试总结范文(精选5篇)
  3. java restcontroller_Spring框架:@RestController与@Controller
  4. stretchblt 模糊_拼多多直播不显示画面?直播画面模糊怎么调整
  5. 防qq页面多边形html5,高仿QQ Xplan的H5页面
  6. python有趣的简单代码_简单代码一学就会,Python生成GIF动图
  7. 设计素材模板|春节要来了,素材准备好了么?
  8. 电商商家可以用到的小工具和素材资源网站
  9. ASN.1编解码:asn1c-ORAN-E2AP
  10. PUSHA/POPA