背景:抓取微信公众号内容后,发现图片盗链不容许使用。
所以查了一下。解决方案有两个。
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);
		});
});
以上