于是,我决定从iis日志上查找原因。200 0 0和200 0 64 抓取的字节一样吗?iis日志默认是不记录服务器发送字节数的,我们要看到发送的字节数,要改一下iis日志的设置。首先,在电脑管理------internet服务----找到自己的网站,右击属性,点击“启用日志记录”右边的“属性”,点“高级”,勾选“发送字节数”,“接收字节数”,"所用时间",应用----确定,重启iis服务。
下图是百度蜘蛛抓取齐鲁花木网的一段分析数据:数据分析源自iis日志。静态的txt 和html文件返回200 0 0,动态的php返回200 0 64。分析了前几天的日志都这样。
上图各列依次是域名,url,状态,最后一列三个数分别是“发送字节数”,“接收字节数”,"所用时间“。
从上图看,200 0 0 状态的,服务器发送的字节数正常。200 0 64状态的,不论是哪个网页,发送字节数都是280左右(而谷歌和别的蜘蛛正常)。这说明百度爬虫抓取动态网页不正常,不是网上说的 200 0 64也正常(至少对齐鲁花木网这个站点来说,是不正常的)。
以前就注意到,有人说百度蜘蛛对gzip抓取动态网页不正常,不过百度官方说百度完全支持gzip。会不会是gzip设置引起的?先停用gzip再说,在iis设置里停用gzip,哇。。。正常了,动态页面也出现了200 0 0,接收的字节也正常了。在此就不贴图了。
找到原因就好办了,百度一下“gzip 200 0 64 ” (我对gzip压缩这方面完全菜鸟),网上有解决办法,一般是更改 C:\WINDOWS\system32\inetsrv\MetaBase.xml关于gzip的压缩设置,作者只看了个大概,没有深入研究。齐鲁花木网这个站点后台有启用gzip压缩,我就在iis服务设置里只启用静态页面压缩,然后在网站后台管理启用gzip,OK,大功告成!
说明一点,本文纯属自己的一点体会,希望遇到同样问题的站长能少走弯路。个人感觉200 0 64 绝不是正常情况,不是网上说的优化过渡或k站前兆,而可能是k站原因(因为百度蜘蛛总是抓取不到正常的网页,只好K了吧),所以站长遇到别的蜘蛛抓取正常,唯有百度出现200 0 64时,特别是动态页面,取消gzip试试。多数是因为服务器开启了GZIP,百度蜘蛛对静态页的GZIP访问正常,但对动态页的GZIP却有些问题。如果取消gzip后正常,那就是gzip引起的,再想办法解决(关闭GZIP或重新配置GZIP,或只压缩静态页)。当然,200 0 64也可能是别的原因引起的,比如网络故障 ,而使蜘蛛不能正常获取网站内容而放弃本次抓取,偶尔出现不足为怪。