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框架django基础指南
Sep 08 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
Python 音频生成器的实现示例
Dec 24 Python
python同义词替换的实现(jieba分词)
Jan 21 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
Jan 23 Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
Python request post上传文件常见要点
Nov 20 Python
Python实战之实现康威生命游戏
Apr 26 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字符串函数学习之substr()
2015/03/27 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
Windows下Node爬虫神器Puppeteer安装记
2019/01/09 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
Python骚操作之动态定义函数
2019/03/26 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
Python使用struct处理二进制(pack和unpack用法)
2020/11/12 Python
投标单位介绍信
2014/01/09 职场文书
银行介绍信范文
2014/01/10 职场文书
孝老爱亲模范事迹
2014/01/24 职场文书
党员承诺践诺书
2014/05/20 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android