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里隐藏的“禅”
Jun 16 Python
Python中的exec、eval使用实例
Sep 23 Python
Python 登录网站详解及实例
Apr 11 Python
Python字典实现简单的三级菜单(实例讲解)
Jul 31 Python
python中scikit-learn机器代码实例
Aug 05 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
Jun 18 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
Python如何用filter函数筛选数据
Mar 05 Python
Python闭包及装饰器运行原理解析
Jun 17 Python
用Python进行websocket接口测试
Oct 16 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 Python
Python实现自动玩连连看的脚本分享
Apr 04 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添加MySQL数据记录代码
2008/06/07 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
tensorflow获取变量维度信息
2018/03/10 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
python生成n个元素的全组合方法
2018/11/13 Python
python适合人工智能的理由和优势
2019/06/28 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
keras slice layer 层实现方式
2020/06/11 Python
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
遥感技术与仪器求职信
2014/02/22 职场文书
销售顾问岗位职责
2014/02/25 职场文书
爱护公共设施的标语
2014/06/24 职场文书
2016年公司新年寄语
2015/08/17 职场文书
2016新年晚会开场白
2015/12/03 职场文书