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实现问号表达式(?)的方法
Nov 27 Python
Flask模拟实现CSRF攻击的方法
Jul 24 Python
python中使用zip函数出现错误的原因
Sep 28 Python
python将txt文件读取为字典的示例
Dec 22 Python
对python中大文件的导入与导出方法详解
Dec 28 Python
Python之NumPy(axis=0 与axis=1)区分详解
May 27 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
python 修改本地网络配置的方法
Aug 14 Python
python 实现检验33品种数据是否是正态分布
Dec 09 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
python中文分词库jieba使用方法详解
Feb 11 Python
PyQt5的QWebEngineView使用示例
Oct 20 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实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
JS如何生成随机验证码
2020/03/02 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
对pandas中to_dict的用法详解
2018/06/05 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
python实现桌面托盘气泡提示
2019/07/29 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
高中家长寄语
2014/04/02 职场文书
促销活动总结模板
2014/07/01 职场文书
工会趣味活动方案
2014/08/18 职场文书
会议欢迎词
2015/01/23 职场文书
导游词之昭君岛
2020/01/17 职场文书