另类SEO分享:利用JS封装iframe躲过搜索引擎的抓取
前言:很多博友不仔细看完内容就直接认为用 iframe 不好之类的云云,而实际上本文就是教你在必须使用 iframe 的时候,该如何躲过搜索引擎的抓取,避免不利于 SEO 的情况!
那么,何为“必须要用 iframe 的时候”?我举个简单的例子:一些主题分享网站,很多时候会使用 iframe 框架调用主题作者的网站来做主题演示,这时候就会产生大量的 iframe 框架,那么本文的方法就可以派上用场了!
导读:了解一点 seo 的站长,应该都知道爬虫都不喜欢 iframe 或 frame,因为蜘蛛访问一个网址时所抓取的 HTML 是调用其他网页的 HTML 文件的代码,并不包含任何的文字内容,也就是说你这个网页的内容是什么,蜘蛛弄不清楚。有人可能会说搜索引擎的蜘蛛也能跟踪爬取所调用的 HTML 文件啊。对,是能跟踪爬取,但是跟踪这一部分内容通常不是完整的页面。搜索引擎更不能判断哪部分是主框架哪一部分是被调用的文件。随着搜索技术的发展也不一定永远无法解决这种问题,但是这么多的网站蜘蛛不会因为你一个网站而费那个劲。所以,当你一定要用到一个 iframe 框架的时候,张戈推荐你继续往下看。
从用 iframe 调用快递 100 制作快递查询,到自己推出互推联盟 iframe 调用代码,张戈算是对 iframe 这玩意摸得有那么一点透彻了。
记得,在互推联盟推出自适应 iframe 代码的时候,冯耀宗博友曾有如下评论:
后来,偶然的测试让我灵光一现,想到用 JS 封装 iframe 的方法,来避开搜索引擎的抓取。当时,我是测试用 JS 封装 CSS 代码,想简单的加密下自己的劳动成果。不想,突然就想到了,既然 JS 可以输出 CSS,那 JS 应该也可以输出 iframe 啊!实际测试发现,我的想法是可行的!通过 JS 输出 iframe 代码,可以完美实现直接调用 iframe 代码的效果!
下面以互推联盟为例子,公布方法:
张戈最开始推出的 iframe 自适应调用代码如下:
<iframe style="padding: 0px; width: 100%;" height="480" src="http://zhangge.net/bokehutui" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
现在,张戈来说明如何用 JS 代码封装这段 iframe,制作 js 版本:
首先,新建一个 JS 文件,在里面输入以下内容并保存:
括号中即为原 iframe 的内容,要注意的是首尾是双引号,而 iframe 里面需要改为单引号!否则无法输出!
document.write("<iframe style='padding: 0px; width: 100%;' height='480' src='//zhangge.net/bokehutui' frameborder='no' border='0' marginwidth='0' marginheight='0' scrolling='no'></iframe>");
然后,将这个 js 文件上传到服务器
比如互推联盟调用的 js 最终地址为:http://zhangge.net/hutui.js
最后,将如下语句写到你想调用 iframe 的地方
如果存在旧的 iframe 代码,请直接替换掉即可,如果发现界面不理想,请编辑第二步的 JS 文件来调整 iframe 大小。
<script type="text/javascript" src="http://zhangge.net/hutui.js" ></script>
如此一来,就完美实现了原来直接用 iframe 框架调用的效果。
接下来,张戈来实测一下躲过搜索爬虫的效果:
① 打开站长工具的搜索蜘蛛、机器人模拟抓取工具:http://tool.chinaz.com/Tools/Robot.aspx
② 输入用 JS 部署 iframe 代码的页面,比如 MOREOPEN 博客调用的互推联盟页面:http://moreopen.info/electunion
③如图,这个页面存在很多外部链接,若不做处理,蜘蛛肯定可以爬到这个 iframe。
但是经过 JS 封装后,则会得到如下了抓取结果:
如上图所示,结果中并不存在该页面互推联盟的任何内容, 证实了这个方法的可行性!当然,感兴趣的站长也可以用自己的站点亲自测试下效果。
最后,“国际惯例”式的总结下:
综上事实证明,通过 JS 封装 iframe 代码,确实可以完美骗过搜索引擎的抓取,让鱼和熊掌不再难以取舍!
而且,无外链输出、无权重流失,也是张戈博客的通用互推联盟页面被众多站长调用的重要原因之一!很多博主可能以为张戈弄这个互推联盟赚到了多少多少外链,其实不然!张戈在这里必须澄清一下,用 JS 调用的互推联盟,完全不会成为张戈博客的外链!不相信的朋友可以去用工具测试被调用的页面就知道了!
最后,给联盟打个广告:互推联盟欢迎健康合法、积极向上的独立博客的加入!有你更加精彩!详情=>
- 代码转换工具 Code Converter 2013
- OutOfMemoryError异常系列之Java堆溢出
- android ndk之hello world
- ScheduledExecutorService和timer的异同
- 【精心解读】关于Jupyter Notebook的28个技巧
- Web项目接口自动化测试框架搭建
- 一文读懂Hadoop、HBase、Hive、Spark分布式系统架构
- 《Spring敲门砖之基础教程第一季》 第二章(1) Spring框架之IOC首例-HelloWorld
- Java9中的GC调优基础
- javascript深入理解js闭包
- https连接的前几毫秒发生了什么
- android自定义view实现progressbar的效果
- 还是不靠谱!多维LSTM网络预测比特币价格【机器学习应用区块链系列二】
- picasso图片缓存框架
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python第三方包PrettyTable安装及用法解析
- 如何让python的运行速度得到提升
- 在keras中对单一输入图像进行预测并返回预测结果操作
- python中数字是否为可变类型
- ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
- PHP示例演示发送邮件给某个邮箱
- PHP设计模式之观察者模式定义与用法分析
- PHP实现数组向任意位置插入,删除,替换数据操作示例
- 实例讲解Python 迭代器与生成器
- opencv 图像轮廓的实现示例
- 基于python实现可视化生成二维码工具
- Python word实现读取及导出代码解析
- Python项目跨域问题解决方案
- keras的load_model实现加载含有参数的自定义模型
- opencv 图像加法与图像融合的实现代码