判断是搜索引擎蜘蛛还是普通用户及获得蜘蛛名的php函数
作者:笑望书 发布时间:August 15, 2010 分类:建站心得
判断是搜索引擎蜘蛛还是普通用户的函数
function getrobot() {
if(!defined('IS_ROBOT')) {
$kw_spiders = 'Bot|Crawl|Spider|spider|Slurp|slurp|sohu-search|Lycos|lycos|robozilla|baidu|Baidu|google|Google|soso|Soso|YodaoBot|Sogou|sogou|Adsbot|Mediapartners|Msn|msn|scooter|FAST|ia_archiver|Ia_archiver';
$kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
if(!strexists($_SERVER['HTTP_USER_AGENT'], 'http://') && preg_match("/($kw_browsers)/i", $_SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', FALSE);
} elseif(preg_match("/($kw_spiders)/i", $_SERVER['HTTP_USER_AGENT'],$matches))
{
define('IS_ROBOT', TRUE);
} else {
define('IS_ROBOT', FALSE);} }
return IS_ROBOT;
}
再结合下面这个函数,还可以进一步判断出蜘蛛是来自哪个搜索引擎的
function getrobot_name() {
if(!defined('SPIDER_NAME')) {
$kw_spiders = 'Bot|Crawl|Spider|spider|Slurp|slurp|sohu-search|Lycos|lycos|robozilla|baidu|Baidu|google|Google|soso|Soso|YodaoBot|Sogou|sogou|Adsbot|Mediapartners|Msn|msn|scooter|FAST|ia_archiver|Ia_archiver';
$kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
if(!strexists($_SERVER['HTTP_USER_AGENT'], 'http://') && preg_match("/($kw_browsers)/i", $_SERVER['HTTP_USER_AGENT'])) {
define('SPIDER_NAME', '1');
} elseif(preg_match("/($kw_spiders)/i", $_SERVER['HTTP_USER_AGENT'],$matches))
{
define('SPIDER_NAME',$matches[0]);
} else {
define('SPIDER_NAME', '1');
}
}
return SPIDER_NAME;
}
discuz判断蜘蛛函数
function getrobot() {
if(!defined('IS_ROBOT')) {
$kw_spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';
$kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
if(!strexists($_SERVER['HTTP_USER_AGENT'], 'http://') && preg_match("/($kw_browsers)/i", $_SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', FALSE);
} elseif(preg_match("/($kw_spiders)/i", $_SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', TRUE);
} else {
define('IS_ROBOT', FALSE);
}
}
return IS_ROBOT;
}
有了上面的两个函数你就可以为所欲为了,示例
if (IS_ROBOT) {
$SPIDER_NAME=getrobot_name();
if($SPIDER_NAME=='google'||$SPIDER_NAME=='Google')//如果是google蜘蛛
{
*********
}
elseif($SPIDER_NAME=='baidu'||$SPIDER_NAME=='Baidu')//如果是百度蜘蛛
{
*****
}
else{
***
}
}
注意:上面的都是php语言