防盜鏈的解決心得

學習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)
  三、登陸校驗(如必須登陸網站賬號後才能訪問)框架

相關文章
相關標籤/搜索