python实现apahce网站日志分析示例


Posted in Python onApril 02, 2014

维护脚本一例,写得有点乱,只是作为一个实例,演示如何快速利用工具快速达到目的:
应用到:shell与python数据交互、数据抓取,编码转换

#coding:utf-8
#!/usr/bin/python
'''
程序说明:apache access.log日志分析
 分析访问网站IP 来源情况
 日期:2014-01-06 17:01
 author:gyh9711 程序说明:应用到:shell与python数据交互、数据抓取,编码转换
'''
import os
import json
import httplib
import codecs

LogFile='/var/log/apache2/access.log'
#日志
logMess='/tmp/acc.log'
if os.path.isfile(logMess):
 os.system('cp /dev/null %s'% logMess)
file=codecs.open(logMess,'w+',encoding='utf-8')
def cmd(cmd):
  return os.popen(cmd).readlines()
'''
def getIp(ip):
 return json.loads(os.popen("/usr/bin/curl http://ip.taobao.com/service/getIpInfo.php?ip=%s" % ip).readline())['data']
'''
conn = httplib.HTTPConnection('ip.taobao.com')
def getIpCountry(ip):
 conn.request('GET','/service/getIpInfo.php?ip=%s' % ip)
 r1=conn.getresponse()
 if r1.status == 200:
  return json.loads(r1.read())['data']
 else:
  return "Error"
#将access.log文件进行分析,并转为python数组
file.write(u"字段说明:ip   访问次数据  ip国家 城市的 isp号  省份  所在地区\n")
ipDb=[]
for i in cmd('''/usr/bin/awk '{print $1}' %s |sort |uniq -c''' % LogFile):
 ip = i.strip().split(' ')
 ipDb.append(ip)
#通过taobao 提供接口分析ip地址来源
for i in ipDb:
 _tmpD=getIpCountry(i[1])
 #格式说明:ip   访问次数据  ip国家 城市的 isp号  省份  所在地区
 out="%s%s%s%s%s%s%s"%(i[1].ljust(20),i[0].ljust(10),_tmpD['country'].ljust(20),_tmpD['city'].ljust(16),_tmpD['isp_id'].ljust(16),_tmpD['region'].ljust(16),_tmpD['area'].ljust(16))
 print out
 file.write("%s\n"%out)
conn.close()
file.close()
'''
'''
Python 相关文章推荐
Python实现的一个简单LRU cache
Sep 26 Python
玩转python selenium鼠标键盘操作(ActionChains)
Apr 12 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
ubuntu环境下python虚拟环境的安装过程
Jan 07 Python
tensorflow创建变量以及根据名称查找变量
Mar 10 Python
python实现简单神经网络算法
Mar 10 Python
python使用turtle库绘制树
Jun 25 Python
tensorflow实现训练变量checkpoint的保存与读取
Feb 10 Python
python中wheel的用法整理
Jun 15 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
pandas统计重复值次数的方法实现
Feb 20 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
python实现数通设备端口监控示例
Apr 02 #Python
使用python解析xml成对应的html示例分享
Apr 02 #Python
Python爬虫框架Scrapy安装使用步骤
Apr 01 #Python
使用python绘制人人网好友关系图示例
Apr 01 #Python
python异步任务队列示例
Apr 01 #Python
用Python编程实现语音控制电脑
Apr 01 #Python
35个Python编程小技巧
Apr 01 #Python
You might like
用PHP产生动态的影像图
2006/10/09 PHP
php部分常见问题总结
2008/03/27 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
深入理解php的MySQL连接类
2013/06/07 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
js自带函数备忘 数组
2006/12/29 Javascript
Mootools 1.2教程 类(一)
2009/09/15 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
详解Python之unittest单元测试代码
2018/01/24 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
员工年终演讲稿
2014/01/03 职场文书
环卫工人节活动总结
2014/08/29 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
小学生暑假安全公约
2015/07/14 职场文书
财务管理制度范本
2015/08/04 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL