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

yipeiwu_com7年前Python基础

维护脚本一例,写得有点乱,只是作为一个实例,演示如何快速利用工具快速达到目的:
应用到: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()

'''

'''

相关文章

Python3遍历目录树实现方法

本文实例讲述了Python3遍历目录树的方法。分享给大家供大家参考。具体实现方法如下: import os, fnmatch # 检查一个目录,后者某个包含子目录的目录树,并根据某种...

详解Python odoo中嵌入html简单的分页功能

详解Python odoo中嵌入html简单的分页功能

在odoo中,通过iframe嵌入 html,页面数据则通过controllers获取,使用jinja2模板传值渲染 html页面分页内容,这里写了判断逻辑 <!-- 分页 -...

pygame游戏之旅 添加游戏介绍

pygame游戏之旅 添加游戏介绍

本文为大家分享了pygame游戏之旅的第9篇,供大家参考,具体内容如下 在游戏开始之前定义一个函数,用来显示游戏介绍: def game_intro(): intro = Tru...

你所不知道的Python奇技淫巧13招【实用】

有时候你会看到很Cool的Python代码,你惊讶于它的简洁,它的优雅,你不由自主地赞叹:竟然还能这样写。其实,这些优雅的代码都要归功于Python的特性,只要你能掌握这些Pythoni...

python处理xml文件的方法小结

本文实例讲述了python处理xml文件的方法。分享给大家供大家参考,具体如下: 前一段时间因为工作的需要,学习了一点用Python处理xml文件的方法,现在贴出来,供大家参考。 xml...