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 装饰器功能以及函数参数使用介绍
Jan 27 Python
Python pass 语句使用示例
Mar 11 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
Python基于动态规划算法计算单词距离
Jul 25 Python
详解用python实现简单的遗传算法
Jan 02 Python
pandas 数据结构之Series的使用方法
Jun 21 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
使用opencv中匹配点对的坐标提取方式
Jun 04 Python
Python3.8安装Pygame教程步骤详解
Aug 14 Python
详解Python高阶函数
Aug 15 Python
python树莓派通过队列实现进程交互的程序分析
Jul 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 一个页面执行时间类代码
2010/03/05 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
初识Node.js
2015/03/20 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
python实现得到当前登录用户信息的方法
2019/06/21 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
实习教师自我鉴定
2013/12/12 职场文书
企业管理部经理岗位职责
2013/12/24 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
防灾减灾活动总结
2014/08/30 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
购房协议书范本
2014/10/02 职场文书
跑出一片天观后感
2015/06/08 职场文书
聘任书范文大全
2015/09/21 职场文书