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实现发送email的几种常用方法
Aug 18 Python
基础的十进制按位运算总结与在Python中的计算示例
Jun 28 Python
Python 基础教程之闭包的使用方法
Sep 29 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
Jan 10 Python
python读取图片的几种方式及图像宽和高的存储顺序
Feb 11 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
Python selenium文件上传下载功能代码实例
Apr 13 Python
Python几种常见算法汇总
Jun 02 Python
python实现不同数据库间数据同步功能
Feb 25 Python
python字符串拼接.join()和拆分.split()详解
Nov 23 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环境搭建最新方法
2006/09/05 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php微信开发之关注事件
2018/06/14 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
js实现点击按钮弹出上传文件的窗口
2016/12/23 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
Python 对象中的数据类型
2017/05/13 Python
python正则表达式re之compile函数解析
2017/10/25 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
Python检测网络延迟的代码
2018/05/15 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
Python自定义一个异常类的方法
2019/06/27 Python
利用Python实现kNN算法的代码
2019/08/16 Python
python 字符串常用函数详解
2019/09/11 Python
python 实现线程之间的通信示例
2020/02/14 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
全球最大的服务市场:Fiverr
2017/01/03 全球购物
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
WWE美国职业摔角官方商店:WWE Shop
2018/11/15 全球购物
校友会欢迎辞
2014/01/13 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
防灾减灾日活动总结
2014/08/26 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS