蓝派网(www.lan27.com)-精选网络资源,分享和交流! 文章首页站内搜索在线手册广告代码酷站欣赏万年历
您现在的位置: 蓝派网 >> 文章中心 >> seo专区 >> 搜索引擎技术 >> 正文

史上最强网站日志分析器,一键分析蜘蛛行为

作者:佚名    文章来源:seowhy    更新时间:2011-3-5 21:58:41
前不久写了一篇《优化网站的终极绝学——我是蜘蛛》的达文,估计是写的还不错,被夫唯老师进行了“限时高亮”,我也因为这篇文章正式加入的seowhy达人的行列, “我是蜘蛛”这篇文章的核心思想是要了解蜘蛛,掌握蜘蛛的规律,然后根据蜘蛛的动向和搜索引擎的反应对网站进行优化。

    大家都知道,查看网站日志是了解蜘蛛的唯一途径,现在网上也有很多的工具可以辅助我们进行日志的分析,但令人失望的是,大部分好用的工具都是收费的,做站长的整日辛辛苦苦的赚点钱也不容易,哪有闲钱去买这些东西,无奈只能用免费的了,而免费的东西不是功能单一、操作上有限制,就是工具太大、耗费系统资源太多。

    面对这种情况,我们要怎么才能对网站的日志进行透彻的分析呢?总不能一行一行的来读吧!或者自己动手开发一个怎么样?你也认为这个注意好,是吧!那就让我们自己动手来开发一款可以一键分析蜘蛛行为的、史上最强网站日志分析器。

我们先来看一段网站日志代码:
  1. 220.181.7.104 - - [20/Oct/2010:06:00:06 +0800] "GET /robots.txt HTTP/1.1" 200 767 "-" "Baiduspider+

  2. (+http://www.baidu.com/search/spider.htm)"

这段代码我就不做解析了,如果有看不懂的,请先阅读 如何查看网站被百度抓取的情况?

    开发之前,我们来想一想,我们都需要哪些功能?如果我们以百度蜘蛛为例,我们无非是想知道:
1、百度蜘蛛一天来我们的网站的次数(因为我们都希望越多越好)。
2、百度蜘蛛都是什么时间来的?(知道这个就可以在百度蜘蛛来的时候更新文章,这样可以增加收录数量,减少

收录时间)
3、百度蜘蛛都抓取了哪些页面?相应的http状态码是多少?(根据状态码我们可以判断网站被抓取的情况)

通过分析,我们可以确定开发的目标了,我们要统计蜘蛛爬取次数、爬取时间、爬取的页面和相应的状态码。

下面我们以这一小段测试日志代码为例:

  1. 220.181.7.104 - - [20/Oct/2010:06:00:06 +0800] "GET /robots.txt HTTP/1.1" 200 767 "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)"
  2. 66.249.69.244 - - [20/Oct/2010:06:03:23 +0800] "GET /hao123/category/1/%E6%B7%B1%E5%9C%B3%E5%8C%97%E5%A4%A7%E9%9D%92%E9%B8%9F%E6%A0%A1%E5%8C%BA.html HTTP/1.1" 200 56114 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

我这里采用的方法是运用批处理的方式,提取出日志文件中所有的百度蜘蛛所在的行,输出到指定的文件中,然后在统计出时间、次数、爬取的页面和http状态码。具体代码如下:
  1. @echo off

  2. for /r %%i in (*.log) do find /i "Baiduspider" %%i > baidu.txt
  3. rem 查找目录下的log文件中的“Baiduspider”所在的行,并将其写入到baidu.txt文件

  4. for /f "tokens=4" %%y in (baidu.txt) do @echo %%y >> zhizhu.txt
  5. rem 以空格为分隔符,提取baidu.txt文件中每行的第四段,并将其写入到zhizhu.txt文件(第四段就是蜘蛛爬取

  6. 的时间)

  7. for /f "tokens=1 delims=:" %%i in ('findstr /n .* zhizhu.txt') do set num=%%i
  8. rem 统计蜘蛛爬取的次数

  9. echo ------------------------------------------------------------------ >> zhizhu.txt
  10. rem 输出分割线---------------

  11. echo 百度蜘蛛共来过%num%次,根据蜘蛛来的时间规律发布文章,可以增加收录哦!>> zhizhu.txt
  12. rem 输出文字

  13. echo ------------------------------------------------------------------ >> zhizhu.txt
  14. rem 输出分割线----------

  15. echo 接下来再看看百度蜘蛛抓取了哪些页面吧! >>  zhizhu.txt
  16. rem 输出文字

  17. echo ------------------------------------------------------------------ >> zhizhu.txt
  18. rem 输出分割线----------

  19. for /f "skip=1 tokens=6,7,9,10" %%a in (baidu.txt) do @echo %%a %%b %%c %%d >> zhizhu.txt
  20. rem 以空格为分隔符,提取baidu.txt文件中每行的第6、7、9、10段,并将其写入到zhizhu.txt文件(第6、7、9

  21. 、10段就是蜘蛛爬取的页面和相应的http状态码)

  22. echo %date% > time.txt
  23. rem 提取系统日期,写入到time.txt文件

  24. for /f "tokens=1" %%e in (time.txt) do ren zhizhu.txt %%e-百度蜘蛛统计.txt
  25. rem 将zhizhu.txt文件更名为“系统时间-百度蜘蛛统计.txt”为名的文件,方便存档


  26. del /f /q baidu.txt
  27. rem 删除临时文件baidu.txt

  28. del /f /q time.txt
  29. rem 删除临时文件time.txt
使用方法非常的简单,将上面的代码复制、粘贴到文本文件中,将文本文件另存为后缀名为.bat的批处理文件,然后将你要进行分析的网站日志文件和批处理文件放到同一个目录下,双击批处理文件,稍等一会,在目录下会生成一个“系统时间-百度蜘蛛统计.txt”的文件,这个文件放的就是所有的统计结果,格式如下:
  1. [20/Oct/2010:06:00:06
  2. [20/Oct/2010:08:10:58
  3. [20/Oct/2010:08:10:59
  4. [20/Oct/2010:09:06:22
  5. [20/Oct/2010:09:14:38
  6. [20/Oct/2010:10:59:19
  7. [20/Oct/2010:12:26:41
  8. [20/Oct/2010:12:27:09
  9. [20/Oct/2010:12:38:58
  10. [20/Oct/2010:12:47:19
  11. [20/Oct/2010:12:49:53
  12. [20/Oct/2010:14:17:31
  13. [20/Oct/2010:15:36:52
  14. [20/Oct/2010:17:17:34
  15. [20/Oct/2010:17:17:35
  16. ------------------------------------------------------------------
  17. 百度蜘蛛共来过15次,根据蜘蛛来的时间规律发布文章,可以增加收录哦!
  18. ------------------------------------------------------------------
  19. 接下来再看看百度蜘蛛抓取了哪些页面吧!
  20. ------------------------------------------------------------------
  21. "GET /robots.txt 200 767
  22. "GET /diannaopeixun/gaoji-diannaopeixun/page/3/ 301 -
  23. "GET /diannaopeixun/gaoji-diannaopeixun/page/3 200 27988
  24. "GET / 200 50348
  25. "GET / 200 50442
  26. "GET /robots.txt 200 767
  27. "GET / 200 50455
  28. "GET / 200 50524
  29. "GET / 200 50465
  30. "GET / 200 50470
  31. "GET / 200 50634
  32. "GET /hao123/sitemap/\xe5\x8c\x97/zh.html 200 149111
  33. "GET /tag/ie\xe7\xaa\x97\xe5\x8f\xa3 200 24508
  34. "GET /diannaopeixun/chuji-diannaopeixun/page/4/ 301 -
  35. "GET /diannaopeixun/chuji-diannaopeixun/page/4 200 25256
到此我们就完成了可以一键分析蜘蛛行为的史上最强网站日志分析器的制作,不但简单实用,而且功能强大,不需安装,也永远不用付费,是站长分析网站日志的终极利器。

备注说明:上面的代码是按照康盛世纪的服务器中产生的网站日志格式编写的,由于不同服务器产生的日志格式可
能不同,代码可以按照实际情况进行修改,代码中以rem开头的行,是对上一行代码的注释。

如果网站日志太大,可以将上面的代码分成两个文件来执行,一个文件的作用是统计时间和次数,另一个文件是统
计抓取页面和相应的http状态码。如果想统计google蜘蛛,只需将上面代码中的“Baiduspider”改为“Googlebot”,然后再更改相应的输出文字即可。
发表评论】【打印此文】【关闭窗口】【点击数:
★好玩的休闲小游戏★