技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營

贊助商

分類目錄

贊助商

最新文章

搜索

【反防盜鏈】介紹一個(gè)對(duì)付圖片防盜鏈的方法

作者:admin    時(shí)間:2016-11-11 16:42:49    瀏覽:

悲催的聲明
由于騰訊也采用了防盜鏈技術(shù),本文方法已經(jīng)失效了!

當(dāng)我們想在文章里引用某張圖片時(shí),如果對(duì)方設(shè)置了防盜鏈,我們看到的將是404或forbidden或其他圖片,而不是想要的那張圖片,為此,我們有無方法進(jìn)行“反防盜鏈”呢?答案是有的,本文將介紹一個(gè)對(duì)付圖片防盜鏈的方法,經(jīng)測試有效。

反防盜鏈圖片引用-HTML代碼

舉例說明,比如卡卡網(wǎng)站速度診斷的圖片是防盜鏈的,圖片引用的代碼是:

<img src="http://pagespeed.webkaka.com/rpt/demo/liudehua_91193710_1.jpg">

我們看到的不是原圖,而是其他的圖片。

我們可以把圖片引用代碼改為:

<img src="http://read.html5.qq.com/image?imageUrl=http://pagespeed.webkaka.com/rpt/demo/liudehua_91193710_1.jpg" >

這樣就可以正常顯示自己想要的圖片了。

上述方法很簡單,就是采用第三方接口來獲取圖片,格式是:

<img src="http://read.html5.qq.com/image?imageUrl=圖片地址" >

execcodegetcode

反防盜鏈圖片引用-Javascript代碼

一些人問到,對(duì)方最近才設(shè)置圖片反盜鏈,但我已經(jīng)發(fā)布了大量的文章,我豈不是要重新編輯文章,更改每個(gè)圖片地址?這顯然是不實(shí)際的。我現(xiàn)在要告訴你的是,沒關(guān)系,我們網(wǎng)頁可以通過一個(gè)JS程序,批量更改圖片地址。我們要做的,只是更改一下文章頁模版,引入一個(gè)反防盜鏈的JS文件,就可以了。

說了這么多,這個(gè)JS代碼是怎樣的呢?我們可以通過如下例子來了解。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <meta http-equiv="Content-Language" content="zh-CN" />
     <title>反防盜鏈實(shí)例_卡卡網(wǎng) webkaka.com</title>
</head>
<body>
<img src="http://pagespeed.webkaka.com/rpt/demo/liudehua_91193710_1.jpg" >
<br><br>
<img src="http://pagespeed.webkaka.com/rpt/demo/liudehua_91193710_1.jpg" >
<br><br>
<script type="text/javascript">
        function showForbiddenImg(){
            var obj=document.getElementsByTagName('img');
            for(var i=0;i<obj.length;i++){
                if(obj[i].getAttribute('src')){
                    obj[i].setAttribute('src','http://read.html5.qq.com/image?imageUrl='+obj[i].getAttribute('src'));
                }
            }
        }
        showForbiddenImg();
</script>
</body>
</html>

execcodegetcode

這個(gè)代碼很簡單,它的作用是遍歷網(wǎng)頁所有圖片,并在圖片地址前面加上指定字符串。當(dāng)然了,在實(shí)際應(yīng)用中,不可能需要遍歷網(wǎng)頁所有圖片,只需遍歷文章里的圖片即可,這需要自己更改一下這個(gè)js代碼。

如何獲得文章里的所有圖片并更改圖片地址

我們可以通過JQuery來實(shí)現(xiàn)此功能,請(qǐng)看如下實(shí)例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <meta http-equiv="Content-Language" content="zh-CN" />
     <title>反防盜鏈實(shí)例_卡卡網(wǎng) webkaka.com</title>
</head>
<body>
<div id="divArticle" class="arcContent">
<img src="http://pagespeed.webkaka.com/rpt/demo/liudehua_91193710_1.jpg" >
<br><br>
<img src="http://pagespeed.webkaka.com/rpt/demo/liudehua_91193710_1.jpg" >
<br><br>
</div>
</body>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
    //獲取Class為arcContent里面的所有img
    var imglist=$(".arcContent img");
    //或使用下面這句,獲取ID為divArticle里面的所有img
    //var imglist=$("#divArticle img");
    for(var i=0;i<imglist.length;i++){ 
        if(imglist[i].getAttribute('src')){
            imglist[i].setAttribute('src','http://read.html5.qq.com/image?imageUrl='+imglist[i].getAttribute('src'));
        }
    }
});
</script>
</html>

execcodegetcode

使用JQuery時(shí),記得要先引用jquery.js文件。

JQuery代碼還可以這樣寫:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <meta http-equiv="Content-Language" content="zh-CN" />
     <title>反防盜鏈實(shí)例_卡卡網(wǎng) webkaka.com</title>
</head>
<body>
<div id="divArticle" class="arcContent">
<img src="http://pagespeed.webkaka.com/rpt/demo/liudehua_91193710_1.jpg" >
<br><br>
<img src="http://pagespeed.webkaka.com/rpt/demo/liudehua_91193710_1.jpg" >
<br><br>
</div>
</body>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
    $(".arcContent img").each(function(index, element) { //$(".arcContent img") 可換為 $("#divArticle img")
        if($(element).attr('src')){
            $(element).attr('src','http://read.html5.qq.com/image?imageUrl='+$(element).attr('src'));
        }
    });
  });
</script>
</html>

execcodegetcode

上述兩個(gè)JQuery實(shí)例,一個(gè)通過for循環(huán)賦值,一個(gè)通過 $("selector").each(function(index, element) 賦值,殊途同歸。

本文實(shí)例演示及源碼文件下載

demodownload

標(biāo)簽: 防盜鏈  
相關(guān)文章
    x
    • 站長推薦
    /* 左側(cè)顯示文章內(nèi)容目錄 */