找回密码
 立即注册

QQ登录

只需一步,快速开始

万卷论坛-万卷网

[discuz教程] PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结

[复制链接]

发表于 2018-1-11 14:30:05 | 显示全部楼层 |阅读模式
1、推荐的一种方法:php判断搜索引擎蜘蛛爬虫还是人为访问代码,摘自Discuz x3.2

实际应用中可以这样判断,直接不是搜索引擎才执行操作

2、第二种方法:

使用PHP实现蜘蛛访问日志统计

$useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT']));  if (strpos($useragent, 'googlebot')!== false){$bot = 'Google';} elseif (strpos($useragent,'mediapartners-google') !== false){$bot = 'Google Adsense';} elseif (strpos($useragent,'baiduspider') !== false){$bot = 'Baidu';} elseif (strpos($useragent,'sogou spider') !== false){$bot = 'Sogou';} elseif (strpos($useragent,'sogou web') !== false){$bot = 'Sogou web';} elseif (strpos($useragent,'sosospider') !== false){$bot = 'SOSO';} elseif (strpos($useragent,'360spider') !== false){$bot = '360Spider';} elseif (strpos($useragent,'yahoo') !== false){$bot = 'Yahoo';} elseif (strpos($useragent,'msn') !== false){$bot = 'MSN';} elseif (strpos($useragent,'msnbot') !== false){$bot = 'msnbot';} elseif (strpos($useragent,'sohu') !== false){$bot = 'Sohu';} elseif (strpos($useragent,'yodaoBot') !== false){$bot = 'Yodao';} elseif (strpos($useragent,'twiceler') !== false){$bot = 'Twiceler';} elseif (strpos($useragent,'ia_archiver') !== false){$bot = 'Alexa_';} elseif (strpos($useragent,'iaarchiver') !== false){$bot = 'Alexa';} elseif (strpos($useragent,'slurp') !== false){$bot = '雅虎';} elseif (strpos($useragent,'bot') !== false){$bot = '其它蜘蛛';} if(isset($bot)){   $fp = @fopen('bot.txt','a');   fwrite($fp,date('Y-m-d H:i:s')."\t".$_SERVER["REMOTE_ADDR"]."\t".$bot."\t".'http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]."\r\n");   fclose($fp); }

第三种方法:

我们可以通过HTTP_USER_AGENT来判断是否是蜘蛛,搜索引擎的蜘蛛都有自己的独特标志,下面列取了一部分。

function is_crawler() {   $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);   $spiders = array(     'Googlebot', // Google 爬虫     'Baiduspider', // 百度爬虫     'Yahoo! Slurp', // 雅虎爬虫     'YodaoBot', // 有道爬虫     'msnbot' // Bing爬虫     // 更多爬虫关键字   );   foreach ($spiders as $spider) {     $spider = strtolower($spider);     if (strpos($userAgent, $spider) !== false) {       return true;     }   }   return false; }
下面的php代码附带了更多的蜘蛛标识

function isCrawler() {     echo $agent= strtolower($_SERVER['HTTP_USER_AGENT']);     if (!empty($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",         );         foreach($spiderSite as $val) {             $str = strtolower($val);             if (strpos($agent, $str) !== false) {                 return true;             }         }     } else {         return false;     } } if (isCrawler()){     echo "你好蜘蛛精!"; } else{    echo "你不是蜘蛛精啊!"; }
第四种方法:

0){  $flag = true;} else if(strpos($tmp, 'Yahoo! Slurp') !== false){  $flag = true;} else if(strpos($tmp, 'msnbot') !== false){  $flag = true;} else if(strpos($tmp, 'Sosospider') !== false){  $flag = true;} else if(strpos($tmp, 'YodaoBot') !== false || strpos($tmp, 'OutfoxBot') !== false){  $flag = true;} else if(strpos($tmp, 'Sogou web spider') !== false || strpos($tmp, 'Sogou Orion spider') !== false){  $flag = true;} else if(strpos($tmp, 'fast-webcrawler') !== false){  $flag = true;} else if(strpos($tmp, 'Gaisbot') !== false){  $flag = true;} else if(strpos($tmp, 'ia_archiver') !== false){  $flag = true;} else if(strpos($tmp, 'altavista') !== false){  $flag = true;} else if(strpos($tmp, 'lycos_spider') !== false){  $flag = true;} else if(strpos($tmp, 'Inktomi slurp') !== false){  $flag = true;}if($flag == false){  header("Location: https://bbs.xawanjuan.com/" . $_SERVER['REQUEST_URI']);  // 自动转到https://bbs.xawanjuan.com/ 对应的网页  // $_SERVER['REQUEST_URI'] 为域名后面的路径  // 或换成header("Location: https://bbs.xawanjuan.com/abc/d.php");  exit();}?>



温馨提示:
1、万卷书店现有正版新书,二手书,电子书。当您有需要购买时请联系QQ:2328858568 微信:a15319999845给您查询处理。注明:万卷论坛。有优惠
2、论坛已开通免费注册。当您在访问万卷论坛中遇到问题,投诉邮箱:673665010@qq.com 第一时间给您回复处理。




上一篇:Discuz!论坛SEO设置之关联关键词链接详解
下一篇:DISCUZ!论坛管理员无法登录后台的各种解决方法总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

资讯网--资讯科技信息网站|网站地图

Processed in 0.082023 second(s), 27 queries.

站点统计| 举报| Archiver| 手机版| 小黑屋

Powered by Discuz! X3.4 © 2001-2018 Comsenz Inc.

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

Honor accompaniments. theme macfee

快速回复 返回顶部 返回列表