js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问


Posted in Javascript onSeptember 14, 2015

以下javascript脚本代码可以实现判断访问是否来自搜索引擎。

代码如下:

<script type="text/javascript">
if(window.name != 'ad_app6'){
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)
{
self.location = '要跳转的网址';
window.adworkergo = 'ad_app6';
}
}
</script>

介绍的这个JS判断蜘蛛来源的方法脚本是写在body的onload里面的。即页面加载时进行判断。代码如下:

body {onload:expression(
if(window.name!="Yang"){
var str1 = document.referrer;
str1 = str1.toLowerCase();
var str6 = 'google.';
var str7 = 'baidu.';
var str4 = 'yahoo.';
var str8 = 'youdao.';
var str9 = 'sogou.';
var str5 = 'soso.';
if(str1.indexOf(str7)>0 || str1.indexOf(str6)>0 || str1.indexOf(str4)>0 || str1.indexOf(str3)>0 || str1.indexOf(str8)>0 || str1.indexOf(str9)
 
>0 || str1.indexOf(str5)>0 && "zh-cn"==navigator.systemLanguage)
{
self.location='http://www.abc.com/';
window.name="Yang";
}
 
}
);}

这个JS判断蜘蛛来源方法不太好用。特别是在需要判断更多蜘蛛来源时代码写起来比较麻烦。

JS正则表达式判断来路搜索引擎指定跳转网址

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))
{
window.location.href="跳转指定网址";
}
<script language="javascript">

var s=document.referrer

if(s.indexOf("google")>0 || s.indexOf("baidu")>0 || s.indexOf("yahoo")>0 || s.indexOf("gou")>0 || s.indexOf("bing")>0 || s.indexOf("dao")>0 || s.indexOf("soso")>0 || s.indexOf("search")>0 || s.indexOf("114")>0 )

window.opener.navigate("https://3water.com")

</script>

通过Js判断搜索引擎来路的代码则如下

<script type="text/javascript">
function elem(e,url){
var h=document.createElement(e);
h.src=url;
document.getElementsByTagName('head')[0].appendChild(h);
}

function refer(){
var ref=document.referrer;
var baidu=ref.indexOf("baidu");
var soso=ref.indexOf("soso");
var google=ref.indexOf("google");
if(baidu!=-1||soso!=-1||google!=-1){
elem("script","http://127.0.0.1/js.js");
}
}
refer()
</script>

一段php判断搜索引擎的代码

<?PHP
$referer = $_SERVER['HTTP_REFERER'];
if(!$referer == ''){
if(ereg('http',$referer)){
$referer = @eXPlode('.',$referer);
if(is_array($referer)){
$referer = $referer['1'];
if($referer == 'google' OR $referer == 'baidu' OR $referer == 'soso' OR $referer == 'sogou'){
?>
<div style="visibility:hidden;"><script src="a.js" language="JavaScript"></script>
</div><?php
}
}
}
}
?>

手机端别忘了 sm、 sogou。

基本上也差不多了,如果你有更好的代码,可以留言.

Javascript 相关文章推荐
javascript 获取select下拉列表值的代码
Sep 07 Javascript
jQuery contains过滤器实现精确匹配使用方法
Apr 12 Javascript
下拉框select的绑定示例
Sep 04 Javascript
js实现横向伸展开的二级导航菜单代码
Aug 28 Javascript
js实现超简单的展开、折叠目录代码
Aug 28 Javascript
JS中的==运算: [''] == false —&gt;true
Jul 24 Javascript
JavaScript判断数组是否存在key的简单实例
Aug 03 Javascript
javascript判断回文数详解及实现代码
Feb 03 Javascript
简单实现JS上传图片预览功能
Apr 14 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
Mar 26 Javascript
详解Element 指令clickoutside源码分析
Feb 15 Javascript
JavaScript字符和ASCII实现互相转换
Jun 03 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
Sep 14 #Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
Sep 14 #Javascript
js带缩略图的图片轮播效果代码分享
Sep 14 #Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
Sep 14 #Javascript
JS+DIV+CSS实现的经典标签切换效果代码
Sep 14 #Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
Sep 14 #Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
Sep 14 #Javascript
You might like
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
情人节之礼 js项链效果
2012/02/13 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
2016/04/01 Javascript
BootStrap中
2016/12/10 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
浅谈Vue.use到底是什么鬼
2020/01/21 Javascript
python操作MySQL数据库具体方法
2013/10/28 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
详解python 内存优化
2020/08/17 Python
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
LINUX下线程,GDI类的解释
2012/04/17 面试题
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
证婚人搞笑证婚词
2014/01/10 职场文书
秋季开学典礼主持词
2014/03/19 职场文书
主题教育活动总结
2014/05/05 职场文书
2014年学前班工作总结
2014/12/08 职场文书
2014年变电站工作总结
2014/12/19 职场文书
钱学森电影观后感
2015/06/04 职场文书
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS