關於微信公衆平臺文章採集時遇到的圖片防盜鏈問題的分析

羣:340569308javascript

在作一個採集器的時候html

只作了文章的html代碼的採集java

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

發現採集來的文章圖片顯示不出來瀏覽器

是的就是這個鳥樣服務器

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

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

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

 

實踐起來發現並非那麼的順利,第一種方法還好code

樓主在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>

這裏能夠很明確的看到破解後的效果

 

嗯,大致就是這樣

 

若是你有更好的想法能夠告訴我

歡迎你的建議

相關文章
相關標籤/搜索