PHP 判断是否爬虫蜘蛛

我们可以通过 HTTP_USER_AGENT 来判断是否是蜘蛛,搜索引擎的蜘蛛都有自己特有标识,代码改自网络,记录一下。

代码一:is_crawler

来自:https://gist.github.com/zhangguiqiang/2859126

//判断是否爬虫蜘蛛 https://gist.github.com/zhangguiqiang/2859126
if ( !function_exists( 'isCrawler' ) ) {
function isCrawler() {
if (ini_get('browscap')) {
$browser = get_browser(NULL, true);
if ($browser['crawler']) {
return true;
}
} else if (isset($_SERVER['HTTP_USER_AGENT'])) {
$agent = $_SERVER['HTTP_USER_AGENT'];
$crawlers = array(
"/spider/",
"/bot/",
"/crawl/",
"/Googlebot/",
"/Google/",
"/baidu/",
"/blogsearch/",
"/ia_archive/",
"/Slurp/",
"/Yandex/",
"/Yeti/",
"/msnbot/",
"/Mediapartners-Google/",
"/Scooter/",
"/Yahoo-MMCrawler/",
"/FAST-WebCrawler/",
"/Yahoo-MMCrawler/",
"/Yahoo! Slurp/",
"/FAST-WebCrawler/",
"/FAST Enterprise Crawler/",
"/grub-client-/",
"/MSIECrawler/",
"/NPBot/",
"/NameProtect/i",
"/ZyBorg/i",
"/worio bot heritrix/i",
"/Ask Jeeves/",
"/libwww-perl/i",
"/Gigabot/i",
"/bot@bot.bot/i",
"/SeznamBot/i"
);
foreach ($crawlers as $c) {
if (preg_match($c, $agent)) {
return true;
}
}
}
return false;
}
}

代码二:提取自 WP-PostViews 插件

提取自 WP-PostViews 插件,与上面代码大同小异。无意中发现这个插件有类似代码,提取过来备忘。

if ( !function_exists( 'isCrawler' ) ) {
//提取自 WP-PostViews 插件 https://wordpress.org/plugins/wp-postviews
function isCrawler() {
$bots = array(
'Google Bot' => 'google'
, 'MSN' => 'msnbot'
, 'Alex' => 'ia_archiver'
, 'Lycos' => 'lycos'
, 'Ask Jeeves' => 'jeeves'
, 'Altavista' => 'scooter'
, 'AllTheWeb' => 'fast-webcrawler'
, 'Inktomi' => 'slurp@inktomi'
, 'Turnitin.com' => 'turnitinbot'
, 'Technorati' => 'technorati'
, 'Yahoo' => 'yahoo'
, 'Findexa' => 'findexa'
, 'NextLinks' => 'findlinks'
, 'Gais' => 'gaisbo'
, 'WiseNut' => 'zyborg'
, 'WhoisSource' => 'surveybot'
, 'Bloglines' => 'bloglines'
, 'BlogSearch' => 'blogsearch'
, 'PubSub' => 'pubsub'
, 'Syndic8' => 'syndic8'
, 'RadioUserland' => 'userland'
, 'Gigabot' => 'gigabot'
, 'Become.com' => 'become.com'
, 'Baidu' => 'baiduspider'
, 'so.com' => '360spider'
, 'Sogou' => 'spider'
, 'soso.com' => 'sosospider'
, 'Yandex' => 'yandex'
);
$useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
foreach ( $bots as $name => $lookfor ) {
if ( ! empty( $useragent ) && ( false !== stripos( $useragent, $lookfor ) ) ) {
return true;
}
}
return false;
}
}

除非注明,沙唐桔文章均为原创,本文地址 https://cyhour.com/875/,转载时必须以链接形式注明原始出处。
声明:我们不销售主机,选主机需合法使用。任何主机需定期备份,防止数据丢失。信息以实际为准,评测仅供参考不代表权威!
🔞:Netflix 奈飞 YouTube 合租免费节点Telegram 频道

Windows 局域网共享一键修复 OKShare.bat

Windows 局域网共享一键修复批处理,兼容 Windows 10。OKShare.bat 可一键修复各种网络共享失败问题,如:本机共享无法被访问、无法访问别人共享,无法共享打印机,网络邻居、工作组无法浏览或打开缓慢等问题。 主要功能 查看网络信息 简单共享(无密码) 密码共享 共享和权限设置 …
浏览: 63 标签:  ,  ,  ,  ,  , 

1800年至2100年最早和最晚春节

为搞清春节日期最早和最晚分别会在什么时候出现,就自己编程计算了下,搜索了从1600年至2100年的所有年份,发现最早的春节出现在1月21日,而最晚的春节则出现在2月20日。其中,上一个春节日期极值点位于1985年的2月20日,下一个极值点则要到2061年的1月21日。 1800年至2100年所有春节日期(标有★号…
浏览: 76 标签:  ,  ,  ,  ,  , 

MagicBook Pro 锐龙版 Linux 版 Win 10 无线网卡驱动

MagicBook Pro 锐龙版 Linux版 AMD R5 集显 8GB+512GB (HLY-W19RL),亲测安装 Win 10 LTSB 2016、Win 10 1903,均无法安装到无线网卡驱动,比较坑的是找客服,因为自带 Linux,不提供 Windows 版本驱动。(其实是没有选对型号) 无法确定型号可以到官网查询保修信息来确定:荣耀笔记本产品保修状态…
浏览: 154 标签:  ,  ,  , 
浏览: 46 标签:  ,  , 

Comments:0

发表留言

Vultr 送$100,搬瓦工年付最低$49,优惠码 BWH3HYATVBJW,更多推荐VPS信息