九阁网趣 九阁网趣
PHPText.Net > 文章 > 技术 > WEB开发

PHP 判断是蜘蛛(搜索引擎)来访

2016/01/26 00:44
6382人阅读
网站增加了搜索功能和关键词展示,但是也来了很多注入搜索和蜘蛛爬虫,这就需要屏蔽了。

相信不少人都做过来源记录,或者访问统计的功能。也有人做过文章阅读量一类的会发现,访问量好高,其实很多都是来自于搜索引擎,也就是我们平时用的百度、谷歌、bing这些。这些搜索引擎程序拍爬取的记录,如果没过滤就会造成很多记录,所以在做这类需要精确时候就需要过滤下蜘蛛,而全球有N多蜘蛛,即使是下面的代码也不是最全面的。还需要更多收集和添加才行。


好在所有搜索引擎都会带有标记就是根据 HTTP_USER_AGENT 进行处理。我们只要根据他们的特性进行处理就可以,下面来看看代码吧:

//蜘蛛判定

$spiderSite= array( 

    "TencentTraveler", 

    "Baiduspider+",  //百度

    "BaiduGame", 

    "Googlebot",   //谷歌

    "msnbot", 

    "Sosospider+",  //搜搜

    "Sogou web spider", 

    "ia_archiver", 

    "Yahoo! Slurp", 

    "YoudaoBot",   //有道

    "Yahoo Slurp", 

    "MSNBot", 

    "Java (Often spam bot)", 

    "BaiDuSpider", 

    "Voila", 

    "Yandex bot", 

    "BSpider", 

    "twiceler", 

    "Sogou Spider", 

    "Speedy Spider", 

    "Google AdSense", 

    "Heritrix", 

    "Python-urllib", 

    "Alexa (IA Archiver)", 

    "Ask", 

    "Exabot", 

    "Custo", 

    "OutfoxBot/YodaoBot", 

    "yacy", 

    "SurveyBot", 

    "legs", 

    "lwp-trivial", 

    "Nutch", 

    "StackRambler", 

    "The web archive (IA Archiver)", 

    "Perl tool", 

    "MJ12bot", 

    "Netcraft", 

    "MSIECrawler", 

    "WGet tools", 

    "larbin", 

    "Fish search", 

    "HaosouSpider",

    "YandexBot",

    "AhrefsBot",

    "ltx71",

    "Y!J-ASR"

);


$is_spider=false;

foreach($spiderSite as $val) { 

    if (stristr($_SERVER['HTTP_USER_AGENT'], $val)) { 

        $is_spider=true;

        break;

    } 

}

从上面代码看,可以看到很多蜘蛛名称,也有一些重复的,其实是一些命名问题,而简单的可以用bot,spider过滤大部分蜘蛛,不过一些蜘蛛还是不行的。但基本够用了,目前本站也在收集过滤中。。。


有用的朋友就拿去用吧。

同类推荐

百度地图WEB API报错:APP Referer校验失败百度地图WEB API报错:APP Referer校验失败
微信支付 官方SDK报错 Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘微信支付 官方SDK报错 Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘
关于ios/iphone/ipad 网页不能自动播放视频、音频的解决方案 mediaPlaybackRequiresUserAction  和 解决iphone/ipad视频播放单独弹出问题webkit-playsinline/allowsInlineMediaPlayback关于ios/iphone/ipad 网页不能自动播放视频、音频的解决方案 mediaPlaybackRequiresUserAction 和 解决iphone/ipad视频播放单独弹出问题webkit-playsinline/allowsInlineMediaPlayback
web app iphone4 iphone5 iphone6 响应式布局 适配代码web app iphone4 iphone5 iphone6 响应式布局 适配代码
PHP 判断是蜘蛛(搜索引擎)来访PHP 判断是蜘蛛(搜索引擎)来访
PHP版 P2P借贷公式算法函数大全 平息/等额本金/等额本息/先息后本/混合型PHP版 P2P借贷公式算法函数大全 平息/等额本金/等额本息/先息后本/混合型
iPhone iPad HTML5网页不能自动播放AUDIO音频、VIDEO视频 原因iPhone iPad HTML5网页不能自动播放AUDIO音频、VIDEO视频 原因
jQuery获得页面元素(div、table等)页面中的相对位置(position)和绝对位置(offset)jQuery获得页面元素(div、table等)页面中的相对位置(position)和绝对位置(offset)
ECSHOP 订单状态、支付状态、配送状态 相关程序文件、变量、常量 整理说明ECSHOP 订单状态、支付状态、配送状态 相关程序文件、变量、常量 整理说明
Discuz 用户整合 免激活 同步登录 解决方法Discuz 用户整合 免激活 同步登录 解决方法