找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2841|回复: 0

分析IIS蜘蛛爬行日志,看看谷歌百度是否喜欢你的网站内容

[复制链接]
发表于 2011-1-14 17:06:09 | 显示全部楼层 |阅读模式 来自 河南省郑州市
如果你是租用服务器或者有自己的服务器来做网站的,那么要记录蜘蛛访问日志是很简单和事,但是大部分站长购买自己的服务器是不太可能的。这里我教你一种方法,可以很轻松的记录蜘蛛访问日志,从而分析日志,看百度等搜索引擎是否喜欢你的网站。
深度分析百度蜘蛛代码,合理优化网站
研究百度蜘蛛的爬行规律对于网站优化意义重大,特别是对百度蜘蛛Baiduspider的研究。本文解释一下百度蜘蛛爬行后返回代码代表的具体含义:
2xx 成功
200 正常;请求已完成。
201 正常;紧接 POST 命令。
202 正常;已接受用于处理,但处理尚未完成。
203 正常;部分信息 — 返回的信息只是一部分。
204 正常;无响应 — 已接收请求,但不存在要回送的信息。
3xx 重定向
301 已移动 — 请求的数据具有新的位置且更改是永久的。
302 已找到 — 请求的数据临时具有不同 URI。
303 请参阅其它 — 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应。
304 未修改 — 未按预期修改文档。
305 使用代理 — 必须通过位置字段中提供的代理来访问请求的资源。
306 未使用 — 不再使用;保留此代码以便将来使用。
4xx 客户机中出现的错误
400 错误请求 — 请求中有语法问题,或不能满足请求。
401 未授权 — 未授权客户机访问数据。
402 需要付款 — 表示计费系统已有效。
403 禁止 — 即使有授权也不需要访问。
404 找不到 — 服务器找不到给定的资源;文档不存在。
407 代理认证请求 — 客户机首先必须使用代理认证自身。
410 请求的网页不存在(永久);
415 介质类型不受支持 — 服务器拒绝服务请求,因为不支持请求实体的格式。
5xx 服务器中出现的错误
500 内部错误 — 因为意外情况,服务器不能完成请求。
501 未执行 — 服务器不支持请求的工具。
502 错误网关 — 服务器接收到来自上游服务器的无效响应。
503 无法获得服务 — 由于临时过载或维护,服务器无法处理请求。

比如说:
2010-10-11 08:05:54 e3SVC1662187803 110.60.152.106 GET /index.php - 80 - 61.135.168.47 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 0
1、110.60.152.106这个就是你的网站的 IP。
2、61.135.168.47这个是爬行你网站的蜘蛛IP。
2、 Baiduspider代表代表百度蜘蛛,我们通常以此确定是哪个搜索引擎蜘蛛。
3、/index.php 就代表百度蜘蛛访问的网页
4、2010-10-11 08:05:54是百度蜘蛛爬行的日期与时间
5、代码中的200就代表百度蜘蛛爬行后返回HTTP状态代码,代码中可以了解蜘蛛爬行后的反映。
6、e3SVC1662187803这个我们不用管。
7、80代表WEB服务器的端口。
如果你的网站是http://www.tiyuchangdi.com这就意味着百度蜘蛛在2010-10-11 08:05:54 爬过http://www.tiyuchangdi.com/index.php这一页,200代表了正常;请求已完成。对于日志中的内容,我们之需要关心的是3和5项,3代表的是网页,不需要在说明,下面重点说一下第五项,我们要根据第五项来即使调整网站。

通过下面的程序你就可以记录蜘蛛访问日志,使用时你只要在你的php页面里调用以下这个文件就可以了
function get_naps_bot()
{
$useragent = strtolower($_SERVER[\\\'HTTP_USER_AGENT\\\'
]);

if (
strpos($useragent, \\\'googlebot\\\') !== false
){
return
\\\'Googlebot\\\'
;
}

if (
strpos($useragent, \\\'msnbot\\\') !== false
){
return
\\\'MSNbot\\\'
;
}

if (
strpos($useragent, \\\'slurp\\\') !== false
){
return
\\\'Yahoobot\\\'
;
}

if (
strpos($useragent, \\\'baiduspider\\\') !== false
){
return
\\\'Baiduspider\\\'
;
}

if (
strpos($useragent, \\\'sohu-search\\\') !== false
){
return
\\\'Sohubot\\\'
;
}

if (
strpos($useragent, \\\'lycos\\\') !== false
){
return
\\\'Lycos\\\'
;
}

if (
strpos($useragent, \\\'robozilla\\\') !== false
){
return
\\\'Robozilla\\\'
;
}  
return
false
;
}


function
nowtime
(){
$date=date("Y-m-d.G:i:s"
);
return
$date
;
}

$searchbot = get_naps_bot
();

if (
$searchbot
) {
$tlc_thispage = addslashes($_SERVER[\\\'HTTP_USER_AGENT\\\'
]);
$url=$_SERVER[\\\'HTTP_REFERER\\\'
];
$file="log"
;
$time=nowtime
();
$data=fopen($file,"a"
);
fwrite($data,"Time:$time        robot:$searchbot        URL:
$tlc_thispage\n");
fclose($data
);
}

?>

返回的http状态诸如200 0 64分析说明
在百度研究院的论坛里看到一位版主有这样的一段解释:
蜘蛛在IIS里的行为200 0 64 的解释:
根据我前段时间到现在的观察,虽然没有足够的证据,但是基本上可以肯定在IIS中,如果蜘蛛后面的号码出现200 0 64,那么网站中的这个单页面就会在搜索引擎中消失了.我被K的页面后面都写着200 0 64 ,不知道大家是否认同,还有其他看法,当然,我说这个不够绝对,因为我也有一个页面后面显示着200 0 64 但是在搜索引擎中依旧可以找到.这也说明着问题,但大多200 0 64行为的网页就已经没有了.
所以我觉得蜘蛛的200 0 64行为可以被解释为清除数据。
这个解释,目前看 上去还是有可信度的。我认为,抓取状态成200 0 64是不正常的抓取,正常的抓取是成功标志200 0 0,当变成了200 0 64的状态时说明搜索引擎在抓取这个页面的时候出现了错误,没有正常的进行常规抓取;对于百度来说,百度很可能是已经不再把这些页面抓进主索引库,而是放进了“百度沙盒”里进行考察,考察多久,就看你如何改进,也许,你看不到百度把这些被K的网站释放出来的时候,人是没有规律的。
对于已经被百度拔毛的网站来说,如果你还在乎百度,那就赶紧改正网站上的一切**的地方消除过度优化消除恶意链接,等待百度再次光临,一般来说,这需要2-3个月的时间,认真做站,发现问题,解决问题,才是网站最终获得成功的关键。
下面给出一个分析案例

http状态码[size=+0] 200

[size=+0]2010-05-14 15:52:03  W3SVC1  112.124.232.185   GET /category-8-b0-min1100-max2200.html - 80 - 220.181.7.74 Baiduspider+(+baidu/search/spider.htm) 200 0 0

   分析下 200 0 0组成部分    sc-status(协议状态) sc-substatus(协议子状态) sc-win32-status(Win32状态码)

   sc-status(协议状态): 200 连接成功

   sc-substatus(协议子状态) :0 成功

   sc-win32-status(Win32状态码):0 [size=+0]代表抓取成功并带回数据库 ; 64 指定的网络名不再可用



   1: 在这个访问记录里面112.124.232.185是你服务器的IP地址,220.181.7.74  是bd蜘蛛的IP,/category-8-b0-min1100-max2200.html 为蜘蛛访问你的页面 80是端口 GET是打开方式 W3SVC1是记录的文件夹,这里说明,bd蜘蛛已经访问了你的category-8-b0-min1100-max2200.html 这个页面,那么最重要的是最后面的这个参数200 0 0
   2、[size=+0]200 [size=+0]0[size=+0] 0 [size=+0]成功访问该页面,[size=+0]0[size=+0]代表抓取成功并带回数据库。这个时候你就放心了,这个页面已经被bd收录,但是还没有释放出来,bd更新时就可能释放出来。
   3:200 0 64 网络上流传着这么三种解释第一:64为K站的前兆。第二64的出现只是64位操作系统。第三:网络不可达,由于某种原因无法完全打开页面,或者网络不稳定这些原因,导致蜘蛛无法带回页面或者说不抓取该页面,所以200 0 64的解释也应该为:访问了该页面,但并没有任何抓取也没有带回数据库。这种原因多为空间不稳定、服务器不稳定。
   4:304 0 0这个返回码代表蜘蛛访问的页面没有更新,和他之前来的时候是一样的,所以看到这个不要担心,蜘蛛来过,只不过你没有更新,所以他也不愿意带走这个页面。
   5:404 0 0这个是代表404页面,但是有个很严重的问题,这个返回码告诉我们,蜘蛛来到了404页面并把他带走了,崩溃~~~~,塞是这样的话基本上你要倒霉了,塞你有太多的404,那么蜘蛛就会不断是抓取,不断的带走,这样会造成无数的重复页面,最终导致K站或者降权,正确的返回骂是404 0 64 这就代表蜘蛛没有抓取你这个页面。
   6:500错误500错误是服务器内部错误,是由程序的错误造成的,我不懂程序,但是500错误是会给你减分的,这点基本的逻辑都可以想的到,塞发现500错误,马上查看是哪个页面的,然后去修正以下错误吧!
   7:302塞在日志中发现302的返回码也是需要注意的,302为临时重定向,塞你是长期的将这个页面重定向到另一个页面,麻烦你使用301永久重定向,塞是302的话bd蜘蛛下次来还会访问这个页面,这样又会造成复制大量页面的问题,结果肯定是K,所以,抽空检查以下。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-4-23 14:16 , Processed in 0.156950 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表