防盗链的解决心得

学习java时对爬虫很感兴趣,从刚开始接触的jsoup,爬取360,百度百科到如今使用的开源中国排行第一的爬虫框架webconnect,每一次看见大量数据浮如今我眼前,保存在数据库,有一种成就感;javascript

1:用爬虫作一个搜索图片的需求是很容易的,可是显示图片必需要考虑防盗链的问题,网站防盗链解决网上千奇百怪.但本人以为最实用得是使用mata标签,将referer头设置为never,从而解决大部分小网站防盗链问题,java

这种方法彷佛支支持谷歌浏览器.nginx

2: js解决  实现代码:web

function showImg( 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>' ;
         document.write( '<iframe id="' +frameid+ '" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%"></iframe>' );
}

  调用方式:数据库

showImg( '图片地址' );

 3: 关于防盗链防护方法,有如下3点:浏览器

  一、不容许referer为空(不建议,因在某些开启隐私模式的浏览器中,或https页面引用下,referer是空的)
  二、地址变动(lighttpd的是根据有效时间,nginx的根据是md5)
  三、登陆校验(如必须登陆网站账号后才能访问)框架

相关文章
相关标签/搜索