VPS/云主机等
优惠信息分享~

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

做网站的时候网页中,最好不要插入框架,但是对于很多被转码的网站来说,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>

iframe1

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

但是呢,还有 很多人的那种都是小说章节的列表页被转码(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>

iframe2

这些代码插入在</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,名字随意取,编码就两种任选。上面需要修改的地方修改好。

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

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

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

 

赞(7)
未经允许不得转载:大鸟笔记 » 利用(iframe)框架技术来处理百度转码

评论 12

  1. #1

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

    你周大爷8年前 (2017-11-21)回复
  2. #2

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

    你周大爷8年前 (2017-11-21)回复
  3. #3

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

    焦盐芒果8年前 (2017-11-21)回复
    • 需要修改的地方自己修改好。

      大鸟8年前 (2017-11-21)回复
  4. #4

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

    焦盐芒果8年前 (2017-11-22)回复
    • 应该是代码不兼容导致的,这方法也是旁门左道啊。我在看看有没有别的方法。

      大鸟8年前 (2017-11-22)回复
  5. #5

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

    路人饼8年前 (2017-12-11)回复
  6. #6

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

    路人饼8年前 (2017-12-11)回复
  7. #7

    博主,帮我看看。我都网站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&quot😉 != 0) {
    var params = doParse(location.href);
    if (params.p) {
    var url = "";
    if ("m" == params.p) {
    url = "http://m.xxx.com/mread/&quot; + params.id + "/";
    } else if ("i" == params.p) {
    url = "http://m.xxx.com/&quot; + params.aid + "/" + params.id + "/";
    } else if ("c" == params.p) {
    url = "http://m.xxx.com/mread/&quot; + 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

    路人饼8年前 (2017-12-11)回复
  8. #8

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

    羊倌8年前 (2018-02-01)回复
  9. #9

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

    gftflb8年前 (2018-02-04)回复
    • 额,这里我要更新一下,内容有点陈旧了。

      大鸟8年前 (2018-02-06)回复