网站日志分析基本上是作为一个seoer必备的技能了,我们日常主要的分析工具有比较老一代的光年日志分析工具、longhao日志分析等。然后做粗略分析的还有用shell脚本进行日志分析等。

今天给大家展示一下用Python大法来做日志分析是一个怎样的体验。

首先配置好日志的格式

目标日志的大小是1G,Nginx的日志。

配置好文件名

然后就可以跑起来啦。

1G的日志大概要花一两分钟的时间,然后就可以得到全部的信息在一个表格文件里面啦。

看效果图

目前支持主流的搜索引擎蜘蛛访问分析,可以看到每个搜索引擎对应的总访问量,蜘蛛名称,每个蜘蛛的访问量,每个蜘蛛IP的访问量,以及每个时间段的访问量,各个状态码的访问量以及每条链接的访问量,同时还有每条链接访问的详细信息(哪个蜘蛛IP访问了多少次)。

 

通过上面的分析结果表格,基本上可以分析大部分的蜘蛛问题了。

比如:

1. 我们通过上图可以看到百度的渲染蜘蛛baiduspider-render的访问量基本占了一半(问了好些童鞋,也是这种情况),而这个蜘蛛访问的都是一些二进制资源(图片、js、css、ajax等)。对于真实的页面收录其实没啥特别大的帮助,我们更需要的是baiduspider这个蜘蛛,因为这个才是访问具体html页面的。但是渲染蜘蛛是否会辅助发现新的URL呢,这个目前还不能确定,如果有哪位大神知道的欢迎告知哈。

2. 可以通过查看每个IP的访问量,可以看看哪些是真实的IP,哪些是假冒的。对于真实的IP,还可以通过网上传的这一份攻略来看看:

- 123.125.68.*这个蜘蛛经常来,别的来的少,表示网站可能要进入沙盒了,或者被降权。- 220.181.68.*每天这个IP 段只增不减很有可能进沙盒或K站。- 220.181.7.、123.125.66.代表百度蜘蛛IP造访,准备抓取你东西。- 121.14.89.*这个ip段作为度过新站考察期。- 203.208.60.*这个ip段出现在新站及站点有不正常现象后。- 210.72.225.*这个ip段不间断巡逻各站。- 125.90.88.* 广东茂名市电信也属于百度蜘蛛IP主要造成成分,是新上线站较多,还有使用过站长工具,或SEO综合检测造成的。- 220.181.108.95这个是百度抓取首页的专用IP,如是220.181.108段的话,基本来说你的网站会天天隔夜快照,绝对错不了的,我保证。- 220.181.108.92 同上98%抓取首页,可能还会抓取其他(不是指内页)220.181段属于权重IP段此段爬过的文章或首页基本24小时放出来。- 123.125.71.106抓取内页收录的,权重较低,爬过此段的内页文章不会很快放出来,因不是原创或采集文章。- 220.181.108.91属于综合的,主要抓取首页和内页或其他,属于权重IP段,爬过的文章或首页基本24小时放出来。- 220.181.108.75重点抓取更新文章的内页达到90%,8%抓取首页,2%其他。权重IP段,爬过的文章或首页基本24小时放出来。- 220.181.108.86专用抓取首页IP 权重段,一般返回代码是304 0 0代表未更新。- 123.125.71.95抓取内页收录的,权重较低,爬过此段的内页文章不会很快放出来,因不是原创或采集文章。- 123.125.71.97抓取内页收录的,权重较低,爬过此段的内页文章不会很快放出来,因不是原创或采集文章。- 220.181.108.89专用抓取首页IP 权重段,一般返回代码是304 0 0代表未更新。- 220.181.108.94专用抓取首页IP 权重段,一般返回代码是304 0 0代表未更新。- 220.181.108.97专用抓取首页IP 权重段,一般返回代码是304 0 0代表未更新。- 220.181.108.80专用抓取首页IP 权重段,一般返回代码是304 0 0代表未更新。- 220.181.108.77 专用抓首页IP 权重段,一般返回代码是304 0 0代表未更新。- 123.125.71.117抓取内页收录的,权重较低,爬过此段的内页文章不会很快放出来,因不是原创或采集文章。- 220.181.108.83专用抓取首页IP 权重段,一般返回代码是304 0 0代表未更新。- 注:以上IP尾数还有很多,但段位一样的123.125.71.*段IP代表抓取内页收录的权重比较低.可能由于你采集文章或拼文章暂时被收录但不放出来.(意思也就是说待定)。- 220.181.108.*段IP主要是抓取首页占80%,内页占30%,这此爬过的文章或首页,绝对24小时内放出来和隔夜快照的,这点我可以保证!- 一般成功抓取返回代码都是 200 0 0返回304 0 0代表网站没更新,蜘蛛来过,如果是 2000 64别担心这不是K站,可能是网站是动态的,所以返回就是这个代码。

3. 对于访问量比较大的内页,那么可以看看是不是异常蜘蛛访问,被别人爬了。

通过查看访问量最多的内页:/ask/53021.html  的爬虫详细访问信息可以发现

{"Baiduspider/2.0": {"220.181.108.168": 1, "220.181.108.160": 1, "123.125.71.109": 1, "123.125.71.20": 1, "220.181.108.122": 1, "220.181.165.4": 31, "220.181.165.10": 36, "220.181.165.11": 39, "220.181.165.9": 29, "220.181.165.7": 38, "220.181.165.5": 27, "220.181.108.161": 1}}

200.181.165.*这个C段的IP访问量比较大,而且比较平均。那么验证一下,看看是不是正常的百度蜘蛛呢?

发现并不是真正的百度蜘蛛。然后还可以借助我们的终极大杀器ELK来对日志进行更详细的分析:

可以看到,百度蜘蛛对该页面的访问在晚上18:40分之后有大量的访问,这个似乎有点不正常啊。具体看看是哪些IP访问的:

可以看到18:40之后都是这个220.181.165的IP段再访问,基本就可以确定这个是非百度的爬虫。

对比另外一个访问量较多的同类型内页,也发现了这个情况:

那么根据百度官方的蜘蛛验证手段,验证出来并不是百度的。然而这个访问量又那么大,基本可以让运维把这个IP段的给封掉再说。

如果还不死心的话可以拿单独的IP出来看看它的访问情况:

嗯……都是在晚上访问,而且都是访问问答页和文章页(其实文章页也是问答的)。然后再拿一个正常的百度IP来对比下看看

首先确认这个是正常的百度蜘蛛IP了:

然后看看访问情况:

可以看到时间和页面类型都是比较平均和丰富的。

 

好了,本次就分析到这里吧。还可以进行其它很多各项骚操作哦。

其实做日志分析主要还是要带着目的和问题来进行分析,这样就会有比较明确,速度和效率也会更快一些。

比如:新内容的收录不太好,那么就分析新发布的内容是不是都已经抓取了。抓取是否成功(看状态码以及返回的字节数还有是不是真的百度蜘蛛等)

然后还可以监控看看这些已经抓取的内容多久才收录。抓取次数有多少次等等。

那么对于没有抓取的,看看是不是应该调整一下内链的调用规则,在首页和列表页给多点展现啥的。