如何使用python进行网站日志分析(适合超大日志文件分析工具)

作者:厦门SEO 发布时间:19-03-28 14:41:19 浏览次数:66次

网站日志分析,一直以来都是每位seoer的必修课,要想诊断网站,必须要会分析网站的日志,从蜘蛛日志文件中窥探网站的问题所在。利用seo工具来进行科学的seo优化是每一个从事网站优化都要做到的,厦门seo小编今天要为大家分享的是如何使用python进行网站日志分析?

如何使用python进行网站日志分析

首先,要能写一个查询百度收录的python程序,小编为大家贴出来简单代码,此代码还能够查询网站出图率。在此,感谢魔贝课凡老师提供的代码,需要在此机构进行培训seo培训的,也可以联系我,代码大家可作为参考。

# -*- coding:utf-8 -*-

import csv

import codecs

baidu = {}

baidu["visits"] = 0

baidu["visits_spiders"] = {}

baidu["visits_pages"] = {}

baidu["dirs"] = {}

baidu["error_pages"] = {}

save_file = open("baiduspider.csv","wb")

save_file.write(codecs.BOM_UTF8)

fields = ("总访问量","蜘蛛ip","ip访问次数","受仿目录","目录访问次数","受仿页面","页面访问次数","错误页面","出错次数")

csvwriter = csv.writer(save_file)

csvwriter.writerow(fields)

with open("1.log") as file:

print"开始日志分析"

for line in file:

if "Baiduspider" in line:

baidu["visits"] += 1

item = line.split()

spider = item[8]

if baidu["visits_spiders"].get(spider):

baidu["visits_spiders"][spider] += 1

else:

baidu["visits_spiders"][spider] = 1

url = item[4]

if baidu["visits_pages"].get(url):

baidu["visits_pages"][url] += 1

else:

baidu["visits_pages"][url] = 1

if url == '/':

dirname = '/'

elif url.count('/') >= 2:

dirname = '/%s/' % url.split('/')[1]

else:

dirname = ''

if dirname and baidu["dirs"].get(dirname):

baidu["dirs"][dirname] += 1

elif dirname:

baidu["dirs"][dirname] = 1

error_code = item[10]

if error_code == '404':

if baidu["error_pages"].get(url):

baidu["error_pages"][url] += 1

else:

baidu["error_pages"][url] = 1

sort_spider = sorted(baidu["visits_spiders"].iteritems(),key=lambda x:x[1],reverse=True)

sort_pages = sorted(baidu["visits_pages"].iteritems(),key=lambda x:x[1],reverse=True)

sort_dirs = sorted(baidu["dirs"].iteritems(),key=lambda x:x[1],reverse=True)

sort_error = sorted(baidu["error_pages"].iteritems(),key=lambda x:x[1],reverse=True)

row_list = ['' for _ in range(9)]

for page_item in sort_pages:

row_list[0] = baidu["visits"] if sort_pages.index(page_item) ==0 else ''

a = sort_spider.pop() if sort_spider else ''

row_list[1] = a[0] if a else ''

row_list[2] = a[1] if a else ''

b = sort_dirs.pop() if sort_dirs else ''

row_list[3] = b[0] if b else ''

row_list[4] = b[1] if b else ''

row_list[5] = page_item[0]

row_list[6] = page_item[1]

d = sort_error.pop() if sort_error else ''

row_list[7] = d[0] if d else ''

row_list[8] = d[1] if d else ''

csvwriter.writerow(row_list)

save_file.close()

print"日志分析结束"

使用方法说明:

1.将python文件以及日志文件放到同一个文件夹里面;

2.运行软件,running,开始跑数据;

3.提示日志分析结束后,打开文件,会出现一个excle表格文件,打开就是我们要的日志分析结果了。

以上代码通过PyCharm这个软件进行运行即可,需要注意的是以下提到的四点,一定要注意修改:

网站日志文件分析

1.with open("1.log") as file:这句表示的是打开1.log文件,所以如果日志文件不是这样的,要在这行代码修改,或者直接把日志文件修改为1.log也行;

2.spider = item[8] 这句的数字8,表示的是蜘蛛日志文件从0开始计算,数数,到第八位置的时候出现的是百度蜘蛛,当然,每个人的日志文件有所不同,只要知道这个是找蜘蛛位置就好了;

3.url = item[4] 这个比较简答,寻找网站URL的位置,同样从0开始数,小编的日志是在第四的位置上,所以填写4;

4.error_code = item[10] 这个表示的是状态码的位置,一般出现404页面的话,就会被抓取到。

以上几点需要大家注意,针对自己服务器提供的日志,找到对应的位置,进行修改,这样运行后才能得到正确的数据。以上就是小编为大家带来的使用python进行网站日志分析的全部内容,希望能对大家有帮助。


声明:本文源自厦门华兹SEO原创,如需转载,请注明出处!
标题:如何使用python进行网站日志分析(适合超大日志文件分析工具)
本文网址:http://www.huazseo.com/articles/193.html
weinxin
我的微信
关注我了解更多内容

发表评论

目前评论:0