1.我有一个名为access_log的apache的日志文件,为了快速能知道这个日志文件中有哪些ip访问了这个apache服务并且每个ip访问了多少次,我还想知道客户用了哪些浏览器访问该Apache服务并且这个浏览器用的次数。
2
(1)我用函数式编程的方法。

import re
def count( fname, what):R_D = {}patt = re.compile(what)with open(fname) as f1:for line in f1:m = patt.search(line)if m:key = m.group()R_D[key]=R_D.get(key,0) +1return R_D
if __name__ == '__main__':fname = 'access_log'ip = '^(\d+\.){3}\d+'br = 'Firefox|MSIE|Chrome'a1 = (count(fname,ip))a1 = list(a1.items())a2 = (count(fname,br))a2 = list(a2.items())a1.sort(key=lambda seq:seq[-1],reverse=True)a2.sort(key=lambda seq:seq[-1],reverse=True)for i in a1:print('%s %s次' % i)for i in a2:print('%s %s次' % i)

效果如下:

(2)opp对象编程的方法

import re
class countpatt:def __init__(self,fname):self.fname=fnamedef count(self,what):R_D = {}patt = re.compile(what)with open(self.fname) as f1:for line in f1:m = patt.search(line)if m:key = m.group()R_D[key]=R_D.get(key,0) +1return R_D
if __name__ == '__main__':fname = 'access_log'ip = '^(\d+\.){3}\d+'br = 'Firefox|MSIE|Chrome'a1 = countpatt(fname)a1 = a1.count(ip)a2 = countpatt(fname)a2 = a2.count(br)a1 = list(a1.items())a2 = list(a2.items())a1.sort(key=lambda seq:seq[-1],reverse=True)a2.sort(key=lambda seq:seq[-1],reverse=True)for i in a1:print('%s %s次' % i)for i in a2:print('%s %s次' % i)

效果如下

欢迎大家观看我的视频教程:Python3入门到进阶

用python脚本分析apache访问日志相关推荐

  1. python脚本分析apache访问日志

    问题: 编写count_patt.py脚本,实现一个apche日志分析脚本: 统计每个客户端访问apache服务器的次数 将统计信息通过字典的方式显示出来 分别统计客户端是Firefox和MSIE的访 ...

  2. 分析apache访问日志

    # # 分析apache访问日志 # 编写一个apche日志分析脚本 # 1.  统计每个客户端访问apache服务器的次数 # 2.  将统计信息通过字典的方式显示出来 # 3.  分别统计客户端是 ...

  3. python 统计分析apache日志_python分析apache访问日志脚本分享

    #!/usr/bin/env python # coding=utf-8 #------------------------------------------------------ # Name: ...

  4. 使用Python分析apache访问日志

    3.1 问题 编写count_patt.py脚本,实现一个apche日志分析脚本: 统计每个客户端访问apache服务器的次数 将统计信息通过字典的方式显示出来 分别统计客户端是Firefox和MSI ...

  5. python网站访问日志分析_python分析apache网站日志web日志的代码

    python分析apache网站日志的代码 1.分析日志的python框架awk.py 代码示例: # # Custom awk.py module # class controller: def _ ...

  6. 11.18 Apache用户认证 11.19/11.20 域名跳转 11.21 Apache访问日志

    2019独角兽企业重金招聘Python工程师标准>>> 11.18 Apache用户认证 htpasswd命令 >htpasswd命令是Apache的Web服务器内置工具,用于 ...

  7. Apache用户认证、域名跳转、Apache访问日志

    httpd的用户认证 注意: 本章使用浏览器进行检测的前提是在物理机hosts文件添加虚拟机IP和虚拟主机域名. 配置用户认证 编辑httpd配置文件/usr/local/apache2.4/conf ...

  8. apache访问日志

    apache访问日志 [root@chy ~]# ls /usr/local/apache2.4/logs/ access_log error_log httpd.pid (查看apache日志路径, ...

  9. Linux centos7 VMware Apache访问日志不记录静态文件、访问日志切割、静态元素过期时间...

    一.Apache访问日志不记录静态文件 网站大多元素为静态文件,如图片.css.js等,这些元素可以不用记录 vim /usr/local/apache2.4/conf/extra/httpd-vho ...

最新文章

  1. css字体更小 css比12px更小的方法
  2. 11月16日bd之旅意外参加黄波博士讲座
  3. hexo 博客支持PWA和压缩博文
  4. linux 线程pthread_detach,linux线程之pthread_join和pthread_detach
  5. Tensorflow 2.0的新特性
  6. Keymob浅析2016网络营销十大趋势
  7. malloc/free 和 new/delete
  8. 用doss进入mysql_一键连接给你省了多少事_DOSS 听吧_音频评测-中关村在线
  9. python通过ntohl和htonl等函数实现主机字节序和网络字节序相互转换
  10. [转载] python - map()解析
  11. CentOS 6.6 安装 Node.js
  12. SCOM 2012系列⑪单台服务器性能图监控
  13. python编写计算器实例,Python只用40行代码编写的计算器实例
  14. BP神经网络简单应用实例,bp神经网络应用举例
  15. 英语流利说 核心课 level6 unit2
  16. 定点补码加减法运算_定点整数的加减法
  17. 基因组选择技术在农业动物育种中的应用
  18. amd cpu排行_2020英特尔cpu排行_2019 cpu天梯图 intel和amd cpu性能排行
  19. 12面魔方公式图解法_高手指教一下十二面魔方怎么拼?
  20. 手机中SN、MEID、IMEI的意思

热门文章

  1. ISO 14644, 1-16合集,英文、中文,2021洁净室及相关受控环境国际标准.
  2. Nginx Rewrite跳转
  3. php mgtv m3u8,芒果TV解析源码
  4. 盛世昊通带你领略四驱MPV的魅力
  5. 1964503-39-6,Carboxy-PEG4-phosphonic acid ethyl ester包含羧酸端基和膦酸乙酯部分
  6. 在金融危机中的财富创造大会
  7. 记一次使用mybatisplus新增功能出现Could not set property ‘id‘ of class XXXXXXXX
  8. Python Turtle库画一棵对称勾股树,美丽惊艳的分形世界!
  9. Android OCR文字识别 实时扫描手机号(极速扫描单行文本方案)
  10. 【Kotlin基础系列】第1章 简介