現在說說這種搜片神器是怎麼做的:
一, 先實作一個DHT爬蟲
至于怎麼實作, 我就不多說了, 我這裡有幾篇文章說了.
花點時間去看看吧, 裡面有貼有我的兩個DHT爬蟲的github位址
DHT爬蟲, 相當于汽車裡的發動機, 技術最難實作, 但也是最重要的, 雖然可以使用别人DHT爬蟲, 但是要整合到自己搜片神器的話, 還是需要一定的技術的, 自己寫的話, 成就感更大.
二, 種子下載下傳
種子下載下傳也是很麻煩的事情, 如果是自己實作協定進行種子下載下傳的話, 下載下傳種子時特别費時間, 沒有好的網絡帶寬, 就别想了.
用WireShark抓包分析迅雷, 發現它是這麼個流程: 得到一個磁力連結, 取出那40位元組的infohash, 在自己的種子伺服器進行HTTP請求, 看自己是否已緩存過, 如果已緩存, 直接下載下傳. 如果沒有緩存, 就走DHT網去下載下傳了. 這就是為什麼你看到迅雷有時候下載下傳種子快和慢的現象, 快的時候是因為直接到自己種子伺服器下載下傳, 慢的是因為要經過一定數量的向DHT網絡發送get_peers請求.
ok, 隻要我們實作了DHT爬蟲, 得到infohash後, 就可以到迅雷種子庫去下載下傳. 那麼向迅雷種子庫進行HTTP請求時, 是個什麼構造呢? 抓包分析圖我就不截圖了, 直接文字描述下.
原始infohash: ad2150e029b61caee9edc5f4e9b02cee489788cd
大寫infohash: AD2150E029B61CAEE9EDC5F4E9B02CEE489788CD
請求位址: http://bt.box.n0808.com/AD/CD/AD2150E029B61CAEE9EDC5F4E9B02CEE489788CD.torrent
header頭資訊: Referer: http://bt.box.n0808.com (必須寫, 不然傳回error資訊)
就這麼簡單, 一定要注意AD是infohash頭兩個字元, CD是infohash最後兩個字元.
如果迅雷種子伺服器也沒有你給定的infohash的種子的話, 那就算了, 除非你自己去實作種子下載下傳協定
順便說句, 不知torrage.com是不是被牆了, 時不時地要抽風, 要定向采集它的, 伺服器最好放在國外.
三, 種子檔案分析
讀取檔案内容, 使用bencode子產品"解碼"為程式設計語言的資料結構, 詳情請自行google. 種子檔案裡有name, files, create date, length等屬性值.
四, 搜尋引擎
QQ:519841366
本頁版權歸作者和部落格園所有,歡迎轉載,但未經作者同意必須保留此段聲明,
且在文章頁面明顯位置給出原文連結,否則保留追究法律責任的權利