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 Web框架Flask信号机制(signals)介绍
Jan 01 Python
Python面向对象编程基础解析(二)
Oct 26 Python
Python读csv文件去掉一列后再写入新的文件实例
Dec 28 Python
python中的内置函数max()和min()及mas()函数的高级用法
Mar 29 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
Python FtpLib模块应用操作详解
Dec 12 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
Python random库使用方法及异常处理方案
Mar 02 Python
利用Python过滤相似文本的简单方法示例
Feb 03 Python
TensorFlow中tf.batch_matmul()的用法
Jun 02 Python
python游戏开发Pygame框架
Apr 22 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中Date()时间日期函数的使用方法小结
2011/04/20 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
2020/04/23 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
初识Node.js
2015/03/20 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
[13:38]2015国际邀请赛中国战队出征仪式
2015/05/29 DOTA
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
什么是Python中的顺序表
2020/06/02 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
教育专业个人求职信
2013/12/02 职场文书
理工科学生的自我评价
2013/12/15 职场文书
外企办公室竞聘演讲稿
2013/12/29 职场文书
初中校园之声广播稿
2014/01/15 职场文书
个人向公司借款协议书
2014/10/09 职场文书
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL