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实现仿百度图片的瀑布流加载效果
Apr 20 Javascript
浅析Javascript ES6中的原生Promise
Aug 25 Javascript
什么是JavaScript注入攻击?
Sep 14 Javascript
JavaScript实现经纬度转换成地址功能
Mar 28 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
Oct 12 Javascript
在小程序Canvas中使用measureText的方法示例
Oct 19 Javascript
Javascript实现时间倒计时功能
Nov 17 Javascript
解决webpack多页面内存溢出的方法示例
Oct 08 Javascript
Vue 使用beforeEach实现登录状态检查功能
Oct 31 Javascript
vue 实现tab切换保持数据状态
Jul 21 Javascript
vue离开当前页面触发的函数代码
Sep 01 Javascript
Vue3 Composition API的使用简介
Mar 29 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+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
2015/08/31 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
vue使用vue-cli快速创建工程
2017/07/28 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
基于javascript实现碰撞检测
2020/03/12 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
python遍历数组的方法小结
2015/04/30 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
使用tensorflow实现线性回归
2018/09/08 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
python元组的概念知识点
2019/11/19 Python
python 监控logcat关键字功能
2020/09/04 Python
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
初中化学教学反思
2014/01/23 职场文书
法学专业自我鉴定
2014/02/05 职场文书
服装采购员岗位职责
2014/03/15 职场文书
学习型班组申报材料
2014/05/31 职场文书
老干部工作汇报材料
2014/10/28 职场文书
朋友离别感言
2015/08/04 职场文书