如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户
发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇文章主要介绍"如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户",在日常操作中,相信很多人在如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2024年11月19日如何利用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安全错误
数据库的锁怎样保障安全
r730服务器硬盘是几寸
mysql网络安全面试题
小学生网络安全手抄报内容怎么写
手机kk云服务器
网络安全公约表格
数据库管理阶段的主要特点
网络安全技术竞赛节点
国际医学英文普刊期刊数据库
软件开发外包公司合同好坑
联想服务器装系统教程
黑魂2服务器怎么登录
网络安全法自什么施行
无人服务器游戏手机版下载
vs连接数据库语句
网络安全小公民教学设计
网络安全校园贷心得体会
mc基岩版服务器箱子锁插件
连接数据库处理逻辑
服务器如何安装code
服务器管理员界面
安徽专业软件开发价钱是多少
网络安全演讲稿100字小学生
mysql网络安全面试题
执法局网络安全制度
甘肃众商互联网科技
手机怎么开我的世界模组服务器
网络技术安全员招聘
手机我的世界生存服务器
qq数据库 打开
黄岛区电脑软件开发