数据-python分析apache日志,大家看看错在哪

问题描述

python分析apache日志,大家看看错在哪

import os
import json
import http.client
import codecs
LogFile='/mnt/log/meiyiren.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 = http.client.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("%sn"%out)
conn.close()
file.close()

错误提示

Traceback (most recent call last):
File "/opt/test.py", line 33, in
tmpD=getIpCountry(i[1])
File "/opt/test.py", line 22, in getIpCountry
return json.loads(r1.read())['data']
File "/usr/local/python3.4/lib/python3.4/json/
_init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'

解决方案

你读取的数据是byte数组,需要先转换成str字符串

解决方案二:

 return json.loads(r1.read().decode())['data']
时间: 2024-05-01 14:53:53

数据-python分析apache日志,大家看看错在哪的相关文章

python分析apache访问日志脚本分享_python

#!/usr/bin/env python # coding=utf-8 #------------------------------------------------------ # Name: Apache 日志分析脚本 # Purpose: 此脚本只用来分析Apache的访问日志 # Version: 2.0 # Author: LEO # Created: 2013-4-26 # Modified: 2013-5-4 # Copyright: (c) LEO 2013 #------

Shell脚本实现分析apache日志中ip所在的地区_linux shell

查询ip地址所用的组件 复制代码 代码如下: wget http://rfyiamcool.googlecode.com/files/nali-0.1.tar.gz  tar zxvf nali-0.1.tar.gz  cd nali-0.1  ./configure && make && make install  步骤和nginx是差不多的,只是取日志里面的ip地址的方法不一样~~~ 复制代码 代码如下: #!/bin/bash  #rfyiamcool  IPSUMF

python实现分析apache和nginx日志文件并输出访客ip列表的方法_python

本文实例讲述了python实现分析apache和nginx日志文件并输出访客ip列表的方法.分享给大家供大家参考.具体如下: 这里使用python分析apache和nginx日志文件输出访客ip列表 ips = {} fh = open("/var/log/nginx/access.log", "r").readlines() for line in fh: ip = line.split(" ")[0] if 6 < len(ip) &l

Python 分析Nginx访问日志并保存到MySQL数据库实例_python

使用Python 分析Nginx access 日志,根据Nginx日志格式进行分割并存入MySQL数据库.一.Nginx access日志格式如下: 复制代码 代码如下: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_f

企业shell脚本分析及切割apache日志实战

一,分析apache日志 1,有一个文件shell.sh,内容如下: [root@test3root]#catshell.sh http://www.baidu.com/index.html http://www.google.com/index.html http://www.baidu.com/get.html http://www.baidu.com/set.html http://www.google.com/index.html http://www.yahoo.com.cn/put.

如何在 Linux 上用 SQL 语句来查询 Apache 日志

如何在 Linux 上用 SQL 语句来查询 Apache 日志 Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中着重讲解 Apache HTTP web server 生成的 Apache access 日志. 这次,我们会通过另类的途径来分析 Apache access 日志,我们使用的工具是 asql.asql 是一个开源的工具,它能够允许

hadoop助力python构建mapreduce日志分析平台

如果将http://www.aliyun.com/zixun/aggregation/867.html">流量比较大的日志直接写入Hadoop的话,对Namenode无疑会负载过大,因此入库前合并,可以把各个节点的日志凑并成一个文件写入HDFS. 分析下日志的大小,像200G的dns日志文件,压缩到18G,要是用awk perl当然也可以,但是处理速度肯定没有分布式来的那样迅速 Hadoop Streaming原理 mapper和reducer会从标准输入中读取用户数据,一行一行处理后发送

apache日志分析工具Apache Log Viewer使用教程

Apache Log Viewer是国外一款比较不错的日志分析软件,目前没有汉化版提供下载.分析界面如图: 你可以自定义查看分列信息,如Ip,地址,访问日期.访问页面.访问状态.来路地址.浏览标识(User Agent)如图:(打开步骤:Edit->Preferences->Columns) 自定义查看分列信息 日志分析工具查看到的是所有Apache访问活动,如果你想清晰看到如google机器人,百度蜘蛛等各种User-Agent访问统计可以使用Reports->User Agent.如

PHP开源Apache日志分析工具收集与比较

我们知道已经有很多像Awtstat这样的使用perl.c或者c++开发的强大的日志分析工具,但是同样也有很多使用PHP开发并且开源的日志分析软件,今天我就收集了一些与大家分享. 1.LogAnalyzer LogAnalyzer是 Adiscon的监控软件产品线中的一部分.可以再Windows以及Unix环境下运行.LogAnalyzer本是是免费的,GPL许可的产品. LogAnalyzer的原名为phpLogCon,他在2010年的3月29日发布了3.0的稳定版,并且正式改名为LogAnal