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 相关文章推荐
js的表单操作 简单计算器
Dec 29 Javascript
20行代码实现的一个CSS覆盖率测试脚本
Jul 07 Javascript
javascript四舍五入函数代码分享(保留后几位)
Dec 10 Javascript
node.js中的http.createServer方法使用说明
Dec 14 Javascript
JavaScript中的Promise使用详解
Jun 24 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
Sep 21 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
vue.js中created方法作用
Mar 30 Javascript
javascrpt密码强度校验函数详解
Mar 18 Javascript
在Vue 中实现循环渲染多个相同echarts图表
Jul 20 Javascript
在Vuex中Mutations修改状态操作
Jul 24 Javascript
详解Vue slot插槽
Nov 20 Vue.js
根据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 广告调用类代码(支持Flash调用)
2011/08/11 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
CSS常用网站布局实例
2008/04/03 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
Python制作动态字符图的实例
2019/01/27 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
python生成word合同的实例方法
2021/01/12 Python
饲料采购员岗位职责
2013/12/19 职场文书
企业管理毕业生求职信范文
2014/03/07 职场文书
公司聘任书模板
2014/03/29 职场文书
环境日宣传活动总结
2014/07/09 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
导游词之无锡古运河
2019/11/14 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
MySQL三种方式实现递归查询
2022/04/18 MySQL