Python實現BT種子轉化爲磁力鏈接【實戰】

經常看電影的朋友肯定對BT種子並不陌生,但是BT種子文件相對磁力鏈來說存儲不方便,而且在網站上存放BT文件容易引起版權糾紛,而磁力鏈相對來說則風險小一些。

將BT種子轉換爲佔用空間更小,分享更方便的磁力鏈還是有挺大好處的。

今天咱們來看下如何將種子轉換成磁力鏈接,方案是:利用python的bencode模塊,用起來比較簡單

首先要安裝這個模塊,安裝命令:

pip install bencode

如果沒有安裝pip(安裝了可以略過),看這裏:

pip的安裝方法。

方法一:腳本安裝

$ wget https://bootstrap.pypa.io/get-pip.py
$ [sudo] python get-pip.py

方法二:源碼安裝:

$ curl -O https://pypi.python.org/packages/source/p/pip/pip-X.X.tar.gz
$ tar xvfz pip-X.X.tar.gz
$ cd pip-X.X
$ python setup.py install

但是安裝過程可能會出現錯誤:

An error occurred while trying to run get-pip.py. Make sure you have setuptools or distribute installed.

出現這個錯誤,說明首先要安裝setuptools

setuptools 安裝:

wget -q http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

安裝完setuptools後,再次源碼安裝就好了。

安裝完成後,我們來看下代碼:

系統環境:Linux

Python環境:Python2.7

請注意python版本

bt2url.py

實戰代碼:

#! /usr/local/bin/python
# @desc python通過BT種子生成磁力鏈接 
# @date 2015/11/10
# @author pythontab.com
import bencode
import sys
import hashlib
import base64
import urllib
#獲取參數
torrentName = sys.argv[1]
#讀取種子文件
torrent = open(torrentName, 'rb').read()
#計算meta數據
metadata = bencode.bdecode(torrent)
hashcontents = bencode.bencode(metadata['info'])
digest = hashlib.sha1(hashcontents).digest()
b32hash = base64.b32encode(digest)
#打印
print 'magnet:?xt=urn:btih:%s' % b32hash

如何使用?

命令:

python bt2url.py test.torrent

結果:

magnet:?xt=urn:btih:MWXFHXOGE2UMR7WBFZYEJPM3LF2VIHNH
最後,如果有想一起學習python,爬蟲,可以來一下我的python。q.u.n【 784758214 】,內有安裝包和學習視頻資料免費分享,好友都會在裏面交流,分享一些學習的方法和需要注意的小細節,每天也會準時的講一些項目實戰案例。找工作什麼最重要?看中的還是你的實戰經驗
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章