采用Iframe解决微信图片防盗链‘此图片来自微信公众平台未经允许不可引用’问题

最近使用微信公众号爬虫遇到临时链接过期问题,查了各种博客及论坛,好多方法都已经不能用了,目前能用的就是新榜的一个临时链接转永久链接,但需要个人微信登陆,并且效率比较慢,与其这样问什么不把网页直接保存下来呢?于是乎将爬下来的文章网页存了下来,文本及排版正常显示,但图片无法显示,提示“此图片来自微信公众平台未经允许不可引用”,
于是乎查了一下发现是由于微信图片防盗链问题,怎末办呢?经查询主要有三种方法:
1.,在head中增加这段,可能以前是可以的,但现在微信进行了升级,已经失效了。
2.接下来就是将之前的图片路径嵌入到iframe中进行加载,稍微调整了一下,样式不会乱,直接上代码:

<script type="text/javascript">window.onload = function() {var len = document.getElementById('js_content').getElementsByTagName("img").length;for (var i = 0; i < len; i++) {var img = document.getElementById('js_content').getElementsByTagName("img")[0];if (!isParentHidde && !(typeof(img) === undefined) && img.hasAttribute('data-src')) {var path = showImg(0);document.getElementById('js_content').getElementsByTagName("img")[0].parentElement.innerHTML = path;}}function showImg(index) {var parent = document.getElementById('js_content').getElementsByTagName("img")[index].parentElement;var child = document.getElementById('js_content').getElementsByTagName("img")[index];var url = child.getAttribute("data-src") + '&time=' + Math.random();var style = child.getAttribute("style");var parent_style = parent.getAttribute("style");var imgId = 'img_' + index;var frameid = 'frameimg' + Math.random();window.img = '<img id=' + imgId + ' src=\'' + url + '?' + Math.random() + '\' style = \'' + style +'\'/><script>window.onload = function() { parent.document.getElementById(\'' + frameid +'\').height = document.getElementById(\'' + imgId + '\').height+\'px\'; }<' + '/script>';return '<iframe id="' + frameid +'" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%" style= "' + parent_style + '"></iframe>';}};</script>

在重写img父元素内容时,遇到了点小插曲,之前是以直接遍历的方式进行覆盖img标签的,但由于重写改变了网页结构,导致再赋值的时候,元素下标已经改变,不能按原有遍历顺序下标去赋值,换个思路,直接取第一个img标签进行覆写,这样一直取到的是最新的元素,以此类推直至取完所有的img标签!

代码简单易懂,如有问题,欢迎留言,相互探讨!!

采用Iframe解决微信图片防盗链‘此图片来自微信公众平台未经允许不可引用’问题相关推荐

  1. java 微信图片反盗链_详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案...

    已经获取微信公众号发布的图片,但不能正常显示 ,提示:此图片来自微信公众平台 未经允许不得引用. 这是怎么回事呢? 遇到这种问题是因为微信公众平台对图片采用了防盗链设置,微信对外提供了API接口,让我 ...

  2. 前端解决:此图片来自微信公众平台未经允许不可引用

    前端解决:此图片来自微信公众平台未经允许不可引用 方法一: <meta name="referrer" content="no-referrer" /&g ...

  3. 此图片来自微信公众平台未经允许不可引用 解决方法

    此图片来自微信公众平台未经允许不可引用 解决方法 参考文章: (1)此图片来自微信公众平台未经允许不可引用 解决方法 (2)https://www.cnblogs.com/lmaster/p/9070 ...

  4. 解决“此图片来自微信公众平台未经允许不可引用”的方法

    解决"此图片来自微信公众平台未经允许不可引用"的方法 参考文章: (1)解决"此图片来自微信公众平台未经允许不可引用"的方法 (2)http://www.cnb ...

  5. 解决“此图片来自微信公众平台 未经允许不可引用”的方法

    解决"此图片来自微信公众平台 未经允许不可引用"的方法 参考文章: (1)解决"此图片来自微信公众平台 未经允许不可引用"的方法 (2)https://www. ...

  6. 上传至微信服务器端的图片在界面中展示的时候,显示此图片来自公众平台未经允许不可引用,解决办法只需加两行代码

    此图片来自公众平台未经允许不可引用 上传至微信服务器端的图片在界面中展示的时候如上图不显示图片显示 为此图片来自微信公众平台,未经允许不可引用 解决办法: 在界面的html页面头部head加入以下这两 ...

  7. 此图片来自微信公众平台 未经允许不可引用

    问题描述; 因为微信给自己的图片都加上了图片防盗链接,只要是直接从公众号文章里复制的文章都会显示如下图所示的情况 解决方案: 方案一: 在head中加上<meta name="refe ...

  8. 此图片来自微信公众平台未经允许不可引用

    2016年4月6号开始,weixin.sogou.com获取图片应该是加上了Referer验证,上面用的方法失效了,出现下面的情况: 此图片来自微信公众平台 未经允许不可引用 但是我找到一个和读微信网 ...

  9. 微信开发api “此图片来自微信公众平台未经允许不可引用”的解决方案

    在使用微信开发api接口接管后, 获取公众号的素材发现图片显示"此图片来自微信公众平台未经允许不可引用" 问题: 方案一(推荐): 在html中的<head>里面添加& ...

最新文章

  1. fastjson 的作者,在阿里内网挨骂了?!
  2. mysql text index_MySQL 全文索引(fulltext index)
  3. linux中文件的编辑 写入 读取 光标的位置 以及相应的补充
  4. gcc工具链查看默认编译选项
  5. Mac安装prometheus node_exporter
  6. Using Custom Assemblies with Reports
  7. C#之json序列化与反序列化
  8. Atitit 跨平台跨语言图像处理与node.js图像处理之道 attilax著 1. 著名跨语言类库 ImageMagick简介、GraphicsMagick、命令行 1 1.1. opencv
  9. 微信模板消息字体设置变大
  10. 免费rar密码破解工具排行榜
  11. PLSQL 下载、安装、配置驱动连接 详解
  12. 洛谷 P5560 【[Celeste-B]Golden Feather】
  13. 一键seo提交收录_百度、360快速收录新上线网站技巧、方法
  14. VR家庭火灾安全系统_VR校园火灾安全系统_VR工厂火灾安全系统_VR宿舍火灾安全系统多场景选择
  15. 在配置kile5 的时候出现core.o的错误如何解决
  16. 【GNSS】gfzrnx-用法
  17. Mac 修改开机登陆界面背景图, 替换沙漠背景图
  18. 如何提供一个短链(URL shorter)生成服务
  19. JAVA中webSockt一对一聊天
  20. intellij idea中插件的安装方法及推荐

热门文章

  1. Excel数据透视表按指定文字顺序排序方法
  2. php 如何实现心跳包,Socket心跳机制-JS+PHP实现
  3. 友价商城源代码插件汇总
  4. 劳务员培训建筑八大员培训劳务员建筑劳务分包管理突出的问题
  5. WOS(六)——导出数据格式及处理
  6. 国家网络安全周|2022网络安全知识答题
  7. OSS Content-legnth 异常
  8. regexp_substr()用法
  9. quartus II 过期怎么办?
  10. 解决过渡动画导致的抖动