php 判断是否搜索引擎蜘蛛访问

来自:互联网
时间:2019-10-05
阅读:

在SEO的优化中,通过判断访问者是否为搜索引擎的蜘蛛,可以做很多的事情。当然SEO这方面以后有时间了再写写,这篇博文主要是说一说在PHP中,如何去判断网站的访问者是否为搜索引擎的蜘蛛。

每个搜索引擎的蜘蛛在访问网站时,其 UA(User-Agent)都会携带自己的标识,我们可以通过获取访客浏览器的 UA,并查找其中是否含有蜘蛛标示的形式来判断访客是否为搜索引擎的蜘蛛。

php判断是否为搜索引擎,php记录蜘蛛爬行日志

PHP 判断是否为搜索引擎的蜘蛛

示例1:

<?php
$useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT']));
if (strpos($useragent, 'googlebot')!== false){
    $bot = 'Google Spider';
}elseif (strpos($useragent,'bAIduspider') !== false){
    $bot = 'Baidu Spider';
}elseif (strpos($useragent,'sogou spider') !== false){
    $bot = 'Sogou Spider';
}elseif (strpos($useragent,'sosospider') !== false){
    $bot = 'SOSO Spider';
}elseif (strpos($useragent,'360spider') !== false){
    $bot = '360 Spider';
}elseif (strpos($useragent,'yahoo') !== false){
    $bot = 'Yahoo Spider';
}elseif (strpos($useragent,'msn') !== false){
    $bot = 'MSN Spider';
}elseif (strpos($useragent,'sohu') !== false){
    $bot = 'Sohu Spider';
}elseif (strpos($useragent,'yodaoBot') !== false){
    $bot = 'Yodao Spider';
}else{
    $bot = 'NO Spider';
}
echo $bot;
?>

注意:

1、以上代码只对几个常见的搜索引擎的蜘蛛作了判断,如果需要判断的更全面,那就自己搜索一些蜘蛛的标示了

2、strtolower() 将UA中的大写字母转成小写,可以提示代码的查找精确度

3、addslashes() 函数可以在预定义字符之前添加反斜杠的字符串,以提高匹配的精确度

示例2:

除了上面的直接判断外,我们可以把这个判断逻辑封装成为一个函数,在判断是否搜索引擎的蜘蛛时,直接调用函数即可。

function is_spider(){ 
    $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); 
    $spiders = array( 
        'Googlebot', 
        'Baiduspider', 
        'Yahoo! Slurp', 
        'YodaoBot', 
        'msnbot' 
        //这里可以加入更多的蜘蛛标示
    ); 
    foreach ($spiders as $spider) { 
        $spider = strtolower($spider); 
        if (strpos($userAgent, $spider) !== false) { 
        return true; 
        } 
    } 
    return false; 
}

函数调用方法:

if(is_spider()){
    echo '我是蜘蛛';
}else{
    echo '我不是蜘蛛';
}

蜘蛛标识:

以下是收集而来比较常见的蜘蛛标识,如果有错误或者没有收集到的,可以在下面的评论区留言哦。

百度蜘蛛:Baiduspider

百度图片:Baiduspider-image

百度WAP:Baiduspider-mobile

百度视频:Baiduspider-video

百度新闻:Baiduspider-news

谷歌蜘蛛:Googlebot

360蜘蛛:360Spider

SOSO蜘蛛:Sosospider

雅虎蜘蛛:Yahoo

有道蜘蛛:YoudaoBot,YodaoBot

搜狗蜘蛛:Sogou News Spider,Sogou web spider、Sogou inst spider、Sogou blog、Sogou Orion spider

必应蜘蛛:bingbot

MSN蜘蛛:msnbot,msnbot-media

一搜蜘蛛:YisouSpider

Alexa蜘蛛:ia_archiver

宜搜蜘蛛:EasouSpider

即刻蜘蛛:JikeSpider

一淘网蜘蛛:EtaoSpider

返回顶部
顶部