第一种:
代码语言:javascript复制var r = document.referrer;
r = r.toLowerCase();
var aSites = new Array('google.','baidu.','sm.','soso.','so.','360.','yahoo.','youdao.','sogou.','gougou.');
var b = false;for (i in aSites){
if (r.indexOf(aSites[i]) > 0){
b = true;
break;
}
}
if(b){
//是蜘蛛访问
}
第二种
代码语言:javascript复制var regexp=/.(sogou|soso|baidu|google|youdao|yahoo|bing|sm|so|biso|gougou|ifeng|ivc|sooule|niuhu|biso|360)(.[a-z0-9-] ){1,2}//ig;
var where =document.referrer;
if(regexp.test(where)){
//是蜘蛛访问
}
以上两个方法是Javascript判断是否蜘蛛访问的核心,在具体使用中可以有不同的版本,但都是根据document.referrer来判断的。方法大家都知道了,但众所周知,搜索引擎蜘蛛并不识别Javascript内容,如果你想要根据js判断来进行跳转或者输出内容就不可取了,那么到底应该怎么用呢?举例如下:
一、给蜘蛛看而不是给用户看的内容
比如,黑链……当然,还有其他应用,这里就以黑链为例。应用原理其实很简单,针对用户让其不可见(display:none)即可。如下:
代码语言:javascript复制<div id="blackLinks">
<a href="http://www.pianyong.com">偏用</a>
<a href="http://www.jd-cloud.cn">筋斗云</a>
</div>
<script>
var regexp=/.(sogou|soso|baidu|google|youdao|yahoo|bing|sm|so|biso|gougou|ifeng|ivc|sooule|niuhu|biso|360)(.[a-z0-9-] ){1,2}//ig;
var where =document.referrer;
if(!regexp.test(where)){
$('#blackLinks').hide();
}
</script>
就是这样啦~