利用(iframe)框架技术来处理百度转码

2017年11月21日16:42:52 12 5,710 2976字阅读9分55秒

做网站的时候网页中,最好不要插入框架,但是对于很多被转码的网站来说,js被删除干净,head部分被有选择的删除,我们只能选择这种方法了。但是我们稍微处理下这个框架,让蜘蛛不去抓取他。就从技术上规避了风险。

今天说的这个方法,说实话,不通用,因为每个网站的链接都不一样。所以很多站长要根据自己链接的伪静态规则来修改,今天说的这个方法,大鸟这里只选一种来说下方法。各位站长如果看到过后,修改下对应的规则就可以解决了。

我们,比如说小说站,如果是什么图片站被百度转码,或者其他的站点,就参考这种方法来搞吧。当然方法是绝对管用的目前来说。

我们网站一般有首页,列表页,内容页,当然小说站可以有2个列表页。大鸟这里的链接规则如下。

http://m.xxxx.com/info_7792.html(列表页)

http://m.xxxx.com/xs/1/7792/(列表页)

http://m.xxxx.com/xs/7/7792/3141769.html(内容页)

一般都是列表页被百度转码,但也有很多人品差的,长的不帅的,内容页都被转码。

我们先要插入一个框架。当然插入之前先要定义一个框架网页名字就叫:baidu.html

然后我们在【http://m.xxxx.com/info_1792.html】这个列表页插入一个框架如下(这个列表页就是带小说封面那种)

<iframe id="readbook" src="http://m.xxxx.com/baidu.html?p=m&id=7792" src="http://m.xxxx.com/baidu.html?p=m&id=7792" height="0" width="0" frameborder="0" scrolling="no"></iframe>

利用(iframe)框架技术来处理百度转码

可以看图,大鸟标注红色的地方都是你要修改的,请仔细看,如果大鸟没有标注红色,但是还是需要修改的,请自行修改。因为这里权重会比较高,所以排名比较好,流量也会很多,所以基本都是这类被转码。

但是呢,还有 很多人的那种都是小说章节的列表页被转码(http://m.xxxx.com/xs/1/7792/(列表页))就是这种被转码,那我们也要插入一个框架。

<iframe id="readbook" src="http://m.xxxx.com/baidu.html?p=i&aid=7&id=7792" src="http://m.xxxx.com/baidu.html?p=i&aid=7&id=7792" height="0" width="0" frameborder="0" scrolling="no"></iframe>

利用(iframe)框架技术来处理百度转码

这些代码插入在</body>之前的任何地方,位置随便选。注意标注红色的地方都要自己修改。

这里弄好之后,我们开始弄核心的部分,框架网页的部分,代码如下!

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta name="robots" content="noindex,nofollow" />
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>来源检测_某某小说</title>
  7. </head>
  8. <body>
  9. <script>
  10. function doParse(url) {
  11.     var params = {};
  12.     if (! url ) return params;
  13.     var paramPart = url.substring(url.indexOf("?") + 1);
  14.     var parts = paramPart.split("&");
  15.     for(var i = 0; i < parts.length; i++) {
  16.         var index = parts[i].indexOf("=");
  17.         if (index == -1) continue;
  18.         params[parts[i].substring(0, index)] = parts[i].substring(index + 1);
  19.     }
  20.     return params;
  21. }
  22. if (document.referrer && document.referrer.indexOf("http://m.xxxxx.com") != 0) {
  23.     var params = doParse(location.href);
  24.     if (params.p) {
  25.         var url = "";
  26.         if ("m" == params.p) {
  27.             url = "http://m.xxxxx.com/info_" + params.id + ".html";
  28.         } else if ("i" == params.p) {
  29.             url = "http://m.xxxxx.com/xs/" + params.aid + "/" + params.id + "/";
  30.         } else if ("c" == params.p) {
  31.             url = "http://m.xxxxx.com/xs/" + params.aid + "/" + params.id + "/" + params.cid + ".html";
  32.         }
  33.         if (url) window.top.location.href = url + "";
  34.     }
  35. }
  36. </script>
  37. </body>
  38. </html>

大家自己保存好,注意名称,大鸟这类是baidu.html,编码是utf-8,名字随意取,编码就两种任选。上面需要修改的地方修改好。

我擦,这里看的好难过。大鸟弄个附件你们自己下载看吧。保存好网页之后,放在根目录大鸟的演示是放在根目录。全部改好就可以等生效了,方法是绝对有效的目前来说。估计,看到这里有的人已经看懂了,原来是通过载入框架来辨别是不是原来的网页,不是则回到原来的网页。

下载地址:【框架网页下载

总结:这方法说实话还是有难度的。小白估计看的一脸懵逼,没有一点动手能力的,大鸟也不建议你动手部署代码了,大鸟在看看有没有更简单通用有效的方法来解决转码问题。

 

weinxin
微信公众号
关注大鸟博客公众号
大鸟
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:12   其中:访客  12   博主  0
    • 你周大爷 你周大爷 2

      测试成功与否的方法 ,还是跟之前一样?加域名

      • 你周大爷 你周大爷 2

        大鸟个 能给个QQ么 联系你 请教下!

        • 焦盐芒果 焦盐芒果 2

          非常感谢大鸟,感觉很有用,已经将代码放到网站里了,过几天看看效果!

            • 大鸟 大鸟

              @ 焦盐芒果 需要修改的地方自己修改好。

            • 焦盐芒果 焦盐芒果 2

              新代码投放后,部份页面已被百度更新,用电脑测试能跳回本站,用手机的自带浏览器和QQ浏览器测试,也可跳回本站,但是用UC浏览器测试,会停在百度转码页中,不会跳转,不知是什么原因导致,大鸟兄可测试看看,再次感谢

                • 大鸟 大鸟

                  @ 焦盐芒果 应该是代码不兼容导致的,这方法也是旁门左道啊。我在看看有没有别的方法。

                • 路人饼 路人饼 1

                  问下博主这方法现在还管用么?

                  • 路人饼 路人饼 1

                    http://m.xxx.com/baidu.html?p=m&id=7792 正常情况下直接访问这个,不是也会跳回原url么?为什么我这样测试时候都不成功。

                    • 路人饼 路人饼 1

                      博主,帮我看看。我都网站url结构是这样都。

                      function doParse(url) {
                      var params = {};
                      if (! url ) return params;
                      var paramPart = url.substring(url.indexOf(“?”) + 1);
                      var parts = paramPart.split(“&”);
                      for(var i = 0; i < parts.length; i++) {
                      var index = parts[i].indexOf("=");
                      if (index == -1) continue;
                      params[parts[i].substring(0, index)] = parts[i].substring(index + 1);
                      }
                      return params;
                      }
                      if (document.referrer && document.referrer.indexOf("http://m.xxx.com") != 0) {
                      var params = doParse(location.href);
                      if (params.p) {
                      var url = "";
                      if ("m" == params.p) {
                      url = "http://m.xxx.com/mread/" + params.id + "/";
                      } else if ("i" == params.p) {
                      url = "http://m.xxx.com/" + params.aid + "/" + params.id + "/";
                      } else if ("c" == params.p) {
                      url = "http://m.xxx.com/mread/" + params.id + "/" + params.cid + ".html";
                      }
                      if (url) window.top.location.href = url + "";
                      }
                      }

                      详情页 m.xxx.com/mread/1/
                      目录列表 m.xxx.com/0/1/
                      阅读页面 m.xxx.com/mrad/1/1.html

                      • 羊倌 羊倌 1

                        百度新的转码以www.baidu.com开头了,貌似只有这个方法可以凑效

                        • gftflb gftflb 0

                          iframe框架怎么有两次src调用?是有针对的吗?求博主指教

                            • 大鸟 大鸟

                              @ gftflb 额,这里我要更新一下,内容有点陈旧了。