本帖最后由 wuzu 于 2013-4-19 21:27 编辑
WordPress监测蜘蛛爬行记录,用插件固然可以实现,不过插件也有弊端,太多的会造成载入速度的下降,插件间的冲突等,所以能使用代
码实现的就一定要用代码来实现。
这个监测搜索引擎蜘蛛爬行记录的代码,其实很简单的一段代码:<?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=gmdate(“Y-n-j H:i:s”,time()+8*3600);
return $date;
}
$searchbot = get_naps_bot();
if ($searchbot) {
$tlc_thispage = addslashes($_SERVER['HTTP_USER_AGENT']);
$url=$_SERVER['HTTP_REFERER'];
$file=”robotslogs.txt”;
$time=nowtime();
$data=fopen($file,”a”);
fwrite($data,”Time:$time robot:$searchbot URL:$tlc_thispage\n”);
fclose($data);
}
?>
原理:各大搜索引擎的蜘蛛爬行程序都有自己的标识符,例如谷歌的是googlebot,百度的是 baiduspider,
它们可以通过查询_SERVER变量中的HTTP_USER_AGENT参数来获取,再结合HTTP_REFERER记录下 URL的来源,
最后用 nowtime()函数取得当前的系统时间,就形成了一条简单的擎蜘蛛爬行记录。
看不明白的朋友可以跳过,其实代码许多年前网上就有人共享出来了,我们重点学会如何使用就可以了。
使用: 然后将上面贴出来的代码另存为robots.php,当然你可以任意给它取个名字,例如bbb.php或者
111.php 都行,只要保证扩展名是php,让它能够正常执行即可;然后上传到你的网站程序的模板目录中(例
如Wordpress的是/wp-content /themes/xiao目录);最后在你的模板文件中调用它,例如在Wordpress博客
中,你可以在footer.php文件中添 加<?php include(’robots.php’) ?>代码。
接下来就是等待搜索引擎蜘蛛到你的网站来爬行了,爬行的结果记录在网站根目录的robotslogs.txt中,你
直接打开 http://www.xxx.com/robotslogs.txt就能看到了。当然你也可以修改robots.php文件的第50行,
把robotslogs.txt换成任意你想要的名字。
通过一段时间的监测,你就可以发现搜索引擎蜘蛛在你的网站上爬行的频率了,一般来说,蜘蛛爬行得越勤
快越好。另外,如果你的robotslogs.txt记录的内容太多了的话,你可以清空它重新开始记录。
|