繼上篇寫到數據抓取,數據抓了以後,準備大幹一番,結果遇到了大問題,磁力解析的問題。貌似只能通過迅雷離線下載完了後才可以觀看,和我之前想象中的完全不一樣,這跟我之前的初衷完全不一樣,我想要的是可以體驗無需現在,類似於愛奇藝一樣 流暢的播放。所以,在折騰了N多資料以後,發現了一些竅門,網上有很多說法,比 ...
繼上篇寫到數據抓取,數據抓了以後,準備大幹一番,結果遇到了大問題,磁力解析的問題。貌似只能通過迅雷離線下載完了後才可以觀看,和我之前想象中的完全不一樣,這跟我之前的初衷完全不一樣,我想要的是可以體驗無需現在,類似於愛奇藝一樣 流暢的播放。所以,在折騰了N多資料以後,發現了一些竅門,網上有很多說法,比如:
某一個帖子的部分內容:
找了幾天資料以後,我發現或許我走錯了路,磁力解析並不是通過演算法解析出來的,這些文件都基於一些離線的緩存伺服器,比如:迅雷,旋風,雲盤 等等。
通過這些我想到,我無法架構這些離線伺服器,我能不能通過這些離線伺服器和固定的Hash去獲取這些文件,達到我要播放的目的。想到這,我就瘋狂的在網上找為數不多的資料,發現還真有成功的案例,這一下就刺激起我的勁頭了。
廢話不多說。先貼一段關於解析的代碼:
List<dhtItemDTO> items = new List<dhtItemDTO>(); string xl_jxurl = string.Format("http://i.vod.xunlei.com/req_subBT/info_hash/{0}/req_num/1000/req_offset/0/", hashKey); CommHttp.HttpProc jxpro = new CommHttp.HttpProc(xl_jxurl); jxpro.encoding = Encoding.UTF8; string jxjson1 = Server.UrlDecode(jxpro.Proc()); var item = JsonConvert.DeserializeObject<dhtrespDTO>(jxjson1); if (item != null && item.resp.record_num > 0) { foreach (var jxitem in item.resp.subfile_list) { listDHT.Add(new dhtShowDetailDTO() { title = jxitem.name, key = item.resp.info_hash, keytype = 1, index = jxitem.index, filesize = jxitem.file_size / 1024 / 1024 + "Mb" }); //解析HASH數據 } }
進階篇就先寫到這,附帶一下我這款APP的截圖,下一篇文章會說明解析的具體思路和部分解析代碼。
最後 寫上 QQ技術交流群:485247202 希望可以一些探討和交流技術和心得