解決微信圖片反防盜鏈的方法(此圖片來自微信公衆平臺,未經允許不可引用)

最近手上的官網圖文出現“此圖片來自微信公衆平臺,未經允許不可引用”,導致圖片顯示不了,究其原因:因爲微信公衆平臺對圖片採用了防盜鏈設置,微信對外提供了API接口,讓我們可以通過授權的方式獲取到自己公衆號裏面的文章,或者你也可以通過爬蟲去抓取微信的文章,但是微信的圖片默認是不允許外部調用的。

解決方案:【文章來源CSDN Lison原創,請標明出處】

1、下載圖片保存在本地上,發佈圖片時候上傳本地圖片;

2、在JS中提前把圖片加載到本地,然後從本地緩存中讀取圖片

var showImg = function (url) {
  var frameid = 'frameimg' + Math.random();
  window.img = '<img id="img" src=\'' + url + '?' + Math.random() + '\' /><script>window.onload = function() { parent.document.getElementById(\'' + frameid + '\').height = document.getElementById(\'img\').height+\'px\'; }<' + '/script>';
  return '<iframe id="' + frameid + '" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%"></iframe>';
}


通過各種iframe,form等來跳過防盜鏈機制,但是這種方法,對代碼的結構影響很大,對一些移動類庫兼容性不太好。

3、在head標籤上加上【經測試,已經被和諧掉了】

<meta name="referrer" content="no-referrer" />

4、 第三方接口方式替換原防盜鏈接【親測有效,難以確保長期有效】

<script type="text/javascript">
function showImage(){
	//獲取Class爲main-nav裏面的所有img
	//var imglist=$(".main-nav img");
	//或使用下面這句,獲取ID爲divArticle裏面的所有img
	var imglist=$("#divArticle img");
	for(var i=0;i<imglist.length;i++){
	    if(imglist[i].getAttribute('src')){
		if(imglist[i].getAttribute('src').indexOf("mmbiz.qpic.cn")!=-1){
			imglist[i].setAttribute('src','http://img01.store.sogou.com/net/a/04/link?appid=100520029&url='+imglist[i].getAttribute('src'));
		}
	    }
	}
}
showImage();
</script>

5、微信公衆號文章保存在自己服務器【較麻煩,暫不使用】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章