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/,转载时必须以链接形式注明原始出处。
声明:我们不销售主机,选主机需合法使用。任何主机需定期备份,防止数据丢失。信息以实际为准,评测仅供参考不代表权威!

甘竹牌精装豆鼓鲮鱼罐头鱼小吃下饭菜储备

甘竹罐头,甘香可口。广东甘竹罐头有限公司始创于1988年,专业的罐头生产经验,生产鱼罐头、玉米罐头,肉罐头,豆类罐头等多种罐头,产品销往全国。 甘竹牌精装豆鼓鲮鱼罐头鱼 淘宝官方店铺:甘竹牌 甘竹官方 精装豆鼓鲮鱼罐头鱼227*4罐鱼干小吃下饭菜储备(¥60) 零添加 成份 …
浏览: 40 标签:  ,  ,  ,  ,  , 

日常生活用品食品药品物资应急储备

收集自网络,仅供参考。 应急食品储备 北戴河(BDH)900 铁听压缩饼干 200g*20包 鹰金钱 茄汁黄豆罐头198g 香纳兰 纯正泰国香米2.5kg(进口原粮 泰米 大米) 香纳兰 泰国香米 泰国茉莉香米 5kg(原装进口 泰米 ) 万字 纯酿造酱油 1.8L 甘竹牌-精装豆鼓鲮鱼罐头鱼227*4罐鱼干小…
浏览: 23 标签:  ,  , 

N95 口罩如何消毒/重复利用?

最近因为疫情,想必不少人(包括老杨)为口罩犯愁。别说 N95 口罩,就是普通医用外科口罩都难买到。 买不到只能省点用,循环利用。循环用肯定得先消毒。 温馨提示:方法仅供参考,后果自负! N95 口罩如何消毒? 高温、水煮,肯定是不行的。网上有专家说隔水蒸……可行?老杨觉得不靠谱。 …
浏览: 98 标签:  ,  ,  ,  , 
浏览: 30 标签:  ,  , 

Comments:0

发表留言

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