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网络爬虫实例讲解
Apr 28 Python
老生常谈python中的重载
Nov 11 Python
详解python的argpare和click模块小结
Mar 31 Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
使用tqdm显示Python代码执行进度功能
Dec 08 Python
python3爬取torrent种子链接实例
Jan 16 Python
Python内置类型性能分析过程实例
Jan 29 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
Python面向对象多态实现原理及代码实例
Sep 16 Python
关于Python错误重试方法总结
Jan 03 Python
如何通过一篇文章了解Python中的生成器
Apr 02 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 七大优势分析
2009/06/23 PHP
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
脚本收藏iframe
2006/07/21 Javascript
用JQuery 实现的自定义对话框
2007/03/24 Javascript
用 JSON 处理缓存
2007/04/27 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
python三元运算符实现方法
2013/12/17 Python
基于matplotlib xticks用法详解
2020/04/16 Python
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
中专毕业生自荐信范文
2013/11/28 职场文书
社区七一党员活动方案
2014/01/25 职场文书
2014年安全生产目标责任书
2014/07/23 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
学生会副主席竞选稿
2015/11/19 职场文书