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压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
Feb 19 Python
python实现最大优先队列
Aug 29 Python
详解基于python-django框架的支付宝支付案例
Sep 23 Python
python并发爬虫实用工具tomorrow实用解析
Sep 25 Python
Python Collatz序列实现过程解析
Oct 12 Python
手把手教你进行Python虚拟环境配置教程
Feb 03 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
Mar 06 Python
Python3.7 读取音频根据文件名生成脚本的代码
Apr 07 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
通过实例简单了解python yield使用方法
Aug 06 Python
python中uuid模块实例浅析
Dec 29 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学习笔记之 函数声明(二)
2011/06/09 PHP
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
php实现微信模板消息推送
2018/03/30 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
应届毕业生求职信
2013/11/30 职场文书
学校七一活动方案
2014/01/19 职场文书
分家协议书
2014/04/21 职场文书
推荐信怎么写
2014/05/09 职场文书
建筑专业毕业生求职信
2014/09/30 职场文书
技术入股协议书
2016/03/22 职场文书
Python数据结构之队列详解
2022/03/21 Python
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA