如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户",在日常操作中,相信很多人在如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2025年01月20日如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户
这篇文章主要介绍"如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户",在日常操作中,相信很多人在如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
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://www.jb51.net" . $_SERVER['REQUEST_URI']); // 自动转到https://www.jb51.net 对应的网页 // $_SERVER['REQUEST_URI'] 为域名后面的路径 // 或换成header("Location: https://www.jb51.net/abc/d.php"); exit();}?>
到此,关于"如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
蜘蛛
引擎
搜索引擎
搜索
爬虫
还是
方法
普通
用户
更多
学习
代码
蜘蛛精
雅虎
帮助
实用
独特
接下来
你好
关键
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
pc端软件开发要失业了吗
武汉科技互联网行业
武汉公司内部内训软件开发
kali msf导入数据库
软件开发公司员工手册
中国重要会议论文全文数据库在哪
数据库同时写入百万数据
亚太第一网络技术有限公司
计算机病毒与网络安全课件
e路有你服务器怎么架设
自己的服务器怎么正向代理
九江软件开发公司
老电脑如何改装服务器
维普数据库什么意思
海致网络技术招聘信息
陈睿射到服务器主板上
济南软件开发人员电话
数据库恢复技术建立检查点
无畏契约哪个服务器好用
数据库软件技术支持
网易服务器生存现状
麻将图像识别软件开发
城市静态poi数据库
浙江电视墙服务器哪个比较好
网络安全法普及方法
河南卓丰网络技术有限公司
美国中小学生网络安全
互联网数据中心的网络安全
服务器 噪音
青橄榄网络技术有限公司面试题