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实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
python通过线程实现定时器timer的方法
Mar 16 Python
python多进程共享变量
Apr 06 Python
30秒轻松实现TensorFlow物体检测
Mar 14 Python
python调用staf自动化框架的方法
Dec 26 Python
python求最大值最小值方法总结
Jun 25 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 Python
python plotly画柱状图代码实例
Dec 13 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
Oct 12 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验证session无效的解决方法
2014/11/04 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
php文件上传类的分享
2017/07/06 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python实现每次处理一个字符的三种方法
2014/10/09 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
pycharm新建一个python工程步骤
2019/07/16 Python
python实现LRU热点缓存及原理
2019/10/29 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
python安装及变量名介绍详解
2020/12/12 Python
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
高中数学教学反思
2014/01/30 职场文书
委托书范本
2014/04/02 职场文书
商务日语专业自荐信
2014/04/17 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记