關於微信公眾平台文章采集時遇到的圖片防盜鏈問題的分析


群:340569308

在做一個采集器的時候

只做了文章的html代碼的采集

沒有對圖片進行處理(窮逼買不起高能服務器%>_<%)

發現采集來的文章圖片顯示不出來

是的就是這個鳥樣

目前想到的解決方案有兩個

一:自建圖片解析頁面動態返回圖片

二:更改瀏覽器端圖片請求的header數據(更改referer信息即可破解)

 

實踐起來發現並不是那么的順利,第一種方法還好

樓主在C#環境下用自定義referer的方式去讀取目標圖片的流

然后在response中直接輸出這個流(窮逼真是玩不起%>_<%)

這個方式雖然不錯,但是如果文章瀏覽量大的話請求也開始頻繁

我這渣渣服務器恐怕也受不了

只能把這方法作為候選法了

 1 HttpHelper helper = new HttpHelper();
 2             HttpItem item = new HttpItem() {
 3 
 4                 Referer = "",//必填參數,這里置空
 5                 URL = "http://mmbiz.qpic.cn/mmbiz/dYNplyiblCFna8JoYZw71MH8Z8ib8KBALnJ7DibpDVSLPW4oy0nVhPfEG7PxCVwia6YP1OFibowWWkm2T0pn63icArPQ/0?tp=webp&wxfrom=5&wx_lazy=2",
 6                 UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2",//useragent可有可無
 7                 ResultType = ResultType.Byte
 8 
 9             };
10 
11            HttpResult res = helper.GetHtml(item);
12 
13            Response.ContentType = "image/webp";
14            Response.OutputStream.Write(res.ResultByte, 0, res.ResultByte.Length);

接着是第二種方式

js更改圖片請求的頭部信息

這種方法也不錯  不過唯一的一點是我還沒想通改如何加入到頁面中

頁面中的圖片數量不限,位置也不限,都是動態的

 1 <script type="text/javascript">
 2         function showImg(url) {
 3             var frameid = 'frameimg' + Math.random();
 4             window.img = '<img id="img" src=\'' + url + '?' + Math.random() + '\' /><script>window.onload = function() { parent.document.getElementById(\'' + frameid + '\').height = document.getElementById(\'img\').height+\'px\'; }<' + '/script>';
 5             document.write('<iframe id="' + frameid + '" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%"></iframe>');
 6         }
 7     </script>
 8     <h1>直接盜鏈:</h1>
 9     <br>
10     <img src="http://mmbiz.qpic.cn/mmbiz/dYNplyiblCFna8JoYZw71MH8Z8ib8KBALnJ7DibpDVSLPW4oy0nVhPfEG7PxCVwia6YP1OFibowWWkm2T0pn63icArPQ/0?tp=webp&wxfrom=5&wx_lazy=2" /><br>
11     <h1>js破解盜鏈:</h1>
12     <br>
13     <div id="hotlinking">
14         <script type="text/javascript">showImg('http://mmbiz.qpic.cn/mmbiz/dYNplyiblCFna8JoYZw71MH8Z8ib8KBALnJ7DibpDVSLPW4oy0nVhPfEG7PxCVwia6YP1OFibowWWkm2T0pn63icArPQ/0?tp=webp&wxfrom=5&wx_lazy=2');</script>
15     </div>

這里可以很明確的看到破解后的效果

 

嗯,大體就是這樣

 

如果你有更好的想法可以告訴我

歡迎你的建議


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM