对于一个seor,时时刻刻了解自己的网站被蜘蛛抓取的情况是一件非常重要的事情,通过后台行为过滤器,可以时时刻刻了解到自己的网站被搜索引擎蜘蛛(下面全部简称蜘蛛)访问的情况。然后再根据不同的情况调整seo优化方向。
首先,如果要写一个蜘蛛爬行记录器,需要了解什么是userAgent。
userAgent属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。通常可以通过这个字符串得到访问当前地址的浏览器是什么类型的。
其中js获取userAgent的方法是navigator.userAgent,而php获取userAgent的方法是$_SERVER['HTTP_USER_AGENT'],
由于js是在浏览器端执行的脚本,php是在服务器端执行的脚本,而这些数据是要放进数据库的。所以,直接在php中运行即可。
二话不说,分享下我写的这部分代码:
function SpiderLog() {
$isspider = false;
$bots = array (
'Googlebot' => '谷歌搜索',
'Baiduspider' => '百度搜索',
'360Spider' => '360搜索',
'HaoSouSpider' => '360搜索',
'Sogou web spider' => '搜狗搜索',
'Sogou inst spider' => '搜狗搜索',
'Sogou spider2' => '搜狗搜索',
'Sogou blog' => '搜狗搜索',
'Sogou News Spider' => '搜狗搜索',
'Sogou Orion spider' => '搜狗搜索',
'Sosospider' => '搜搜搜索'
);
$useragent = $_SERVER['HTTP_USER_AGENT'];
foreach($bots as $k => $v) {
if(stristr($useragent, $k) != null) {
$sql = "INSERT INTO `spiderlog` (`name`, `target`, `time`)
VALUE ('".$v."',
'".$_SERVER["REQUEST_URI"]."',
'".date("Y-m-d H-i-s")."')";
$db -> query($sql);
$isspider = true;
break;
}
}
return $isspider;
}
其中$bots这个数组中是百度,360,搜狗,谷歌四大搜索引擎的ua值,做if判断时不考虑大小写,所有使用的是stristr这个函数。
将这个函数放在网站执行的主干路上即可做到统计效果。
文章来源:http://www.worldflying.cn/article-id-44.html