中药方大全小图标
您当前的位置:首页 > 其他 > 网站日记

php函数蜘蛛的判断

提示: 阅读权限:公开  来源:原创  作者:中药方大全
//判断是否为蜘蛛
function spider(){
	$agent=$_SERVER['HTTP_USER_AGENT'];
	if (stripos($agent, "googlebot") > 0 - 1 || stripos($agent, "mediapartners-google") > 0 - 1) {
		$bot = "Google";
	}
	if (stripos($agent, "baiduspider") > 0 - 1) {
		$bot = "Baidu";
	}
	if (stripos($agent, "360spider") > 0 - 1) {
		$bot = "360搜索";
	}
	if (stripos($agent, "sogou") > 0 - 1) {
		$bot = "Sogou";
	}
	if (stripos($agent, "Yisouspider") > 0 - 1) {
		$bot = "神马";
	}
	if (stripos($agent, "bingbot") > 0 - 1) {
		$bot = "Bing";
	}
	if (stripos($agent, "yahoo") > 0 - 1) {
		$bot = "Yahoo!";
	}
	return $bot ? $bot : '';
}

php函数,蜘蛛的判断。


如果不需要知道蜘蛛的名称,则可以这样:

//判断是否爬虫蜘蛛 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;
	}
}


还有一个不用正则的,效率更高:

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;
	}
}


tags: php函数 蜘蛛 插件
返回顶部
推荐资讯
视频:田纪钧讲关节不痛的秘密、膝关节拉筋法
视频:田纪钧讲关节不
白露到了,你还好吗?
白露到了,你还好吗?
尿疗与断食
尿疗与断食
给风疹反复发作女孩的药方(组图)
给风疹反复发作女孩的
相关文章
栏目更新
栏目热门
  1. libreoffice7的命令大全
  2. 帝国cms代码片段备忘录
  3. 帝国cms插件之标题生成标题图片
  4. 帝国cms全站搜索的分页格式如何修改-流程
  5. 帝国cms插件安装模板
  6. 帝国cms插件之迅搜
  7. 帝国cms中点卡怎么可以直接用来网站的登录
  8. useragent两千条,爬虫专用
  9. 帝国cms7.2函数大全
  10. php代码判断是不是微信内部浏览器