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 indexOf函数使用说明
Jul 03 Javascript
js实现权限树的更新权限时的全选全消功能
Feb 17 Javascript
基于jquery的网页SELECT下拉框美化代码
Oct 28 Javascript
jQuery EasyUI API 中文文档 - EasyLoader 加载器
Sep 29 Javascript
JS限制上传图片大小不使用控件在本地实现
Dec 19 Javascript
地址栏传递中文参数乱码在js里用escape转码
Aug 28 Javascript
JS实现一个按钮的方法
Feb 05 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
Aug 24 Javascript
JS组件Bootstrap Table使用实例分享
May 30 Javascript
简单分析js中的this的原理
Aug 31 Javascript
JavaScript字符和ASCII实现互相转换
Jun 03 Javascript
vue+elementUI实现简单日历功能
Sep 24 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
一个域名查询的程序
2006/10/09 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
主管会计岗位责任制
2014/02/10 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
2014年工程部工作总结
2014/11/25 职场文书
高三化学教学反思
2016/02/22 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
实例详解Python的进程,线程和协程
2022/03/13 Python
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle