php判断网站访问来路是否为搜索引擎机器人的方法

10,501次阅读
一条评论

共计 1020 个字符,预计需要花费 3 分钟才能阅读完成。

提醒:本文最后更新于2021-02-09 08:59,文中所关联的信息可能已发生改变,请知悉!

有时我们需要对网站访客来路进行识别,针对真实用户与搜索引擎作不同动作实现,那么首先就需要判断是否为搜索引擎。php判断方法非常简单,通过过滤$_SERVER['HTTP_USER_AGENT'] 参数即可进行识别,以下是摘录某开源程序的相关源码:

private function getRobot()
{
if (empty($_SERVER['HTTP_USER_AGENT']))
{
return false;
}
$searchEngineBot = array(
'googlebot'=>'google',
'mediapartners-google'=>'google',
'baiduspider'=>'baidu',
'msnbot'=>'msn',
'yodaobot'=>'yodao',
'youdaobot'=>'yodao',
'yahoo! slurp'=>'yahoo',
'yahoo! slurp china'=>'yahoo',
'iaskspider'=>'iask',
'sogou web spider'=>'sogou',
'sogou push spider'=>'sogou',
'sosospider'=>'soso',
'spider'=>'other',
'crawler'=>'other',
);
$spider = strtolower($_SERVER['HTTP_USER_AGENT']);
foreach ($searchEngineBot as $key => $value)
{
if (strpos($spider, $key)!== false)
{
return $value;
}
}
return false;
}
public function isRobot()
{
if($this->getRobot()!==false)
{
return true;
}
return false;
}

 

正文完
 0
任侠
版权声明:本站原创文章,由 任侠 于2012-12-20发表,共计1020字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
验证码
免费php空间 评论达人 LV.1
2013-02-15 03:18:13 回复

那要不是百度google等著名引擎的蜘蛛 怎么判断呢?比如 我做的一个bt搜索站 http://bt.pekdo.com 怎么判断类似这样小站的的蜘蛛?
[reply=任侠,2013-02-21 12:57 AM]搜索引擎的蜘蛛一般都会在http头里添加独特的标识,其他类型的蜘蛛可以'spider'=>'other', 'crawler'=>'other', 来进行判断。至于你说的搜索站,不是标准的搜索引擎,在未知其信息的情况下,只能当做普通的来源网站处理[/reply]

     中国北京北京市联通