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 相关文章推荐
在JQuery dialog里的服务器控件 事件失效问题
Dec 08 Javascript
让textarea自动调整大小的js代码
Apr 12 Javascript
js实现快速分享功能(你的文章分享工具)
Jun 25 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
Jul 17 Javascript
各种常用的JS函数整理
Oct 25 Javascript
JavaScript中对象property的删除方法介绍
Dec 30 Javascript
JS随机调用指定函数的方法
Jul 01 Javascript
原生js实现弹出层效果
Jan 20 Javascript
Angular企业级开发——MVC之控制器详解
Feb 20 Javascript
vue如何通过id从列表页跳转到对应的详情页
May 01 Javascript
node上的redis调用优化示例详解
Oct 30 Javascript
vue.js高德地图实现热点图代码实例
Apr 18 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
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
解析vue、angular深度作用选择器
2019/09/11 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
Django 连接sql server数据库的方法
2018/06/30 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
企业总经理岗位职责
2014/02/13 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
golang 实现并发求和
2021/05/08 Golang
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android
python 镜像环境搭建总结
2022/09/23 Python