微信防盗链处理。

背景:抓取微信公众号内容后,发现图片盗链不容许使用。

所以查了一下。解决方案有两个。

1.使用代理,用代理去抓图片。当然要搞后端的东西。需要额外的服务器。

2.防盗链无非是referer,干掉就行了。

<meta name="referrer" content="never">

html头里加上这句话。但是只对chrome有效。

还有一种用 嵌套一个iframe来显示,也是防止referer的。

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

代理法,还可以用qq浏览器的代理服务器。完整代码。使用iframe 办法去掉注释,注释掉代理的 部分就ok了。

$().ready(function() {
		var i =0;
		var i2 = 'showid';
		$("img:not(.logo)").each(function(){
		var src = $(this).attr('src');
		//var newsrc='http://read.html5.qq.com/image?src=forum&q=5&r=0&imgflag=7&imageUrl='+encodeURIComponent(src);
		//$(this).attr("src",newsrc);
		i2 = i2+i;
		$(this).wrap('<span id="'+i2+'"></span>');
		i++;
		//var newsrc2 = src.replace(prefix,"");
		showImg(src,i2);
		});
});

以上

评论关闭