python实现apahce网站日志分析示例
admin
2023-07-31 02:07:10
0

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

\’\’\’

\’\’\’

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...