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群【 784758214 】,內有安裝包和學習視訊資料免費分享,好友都會在裡面交流,分享一些學習的方法和需要注意的小細節,每天也會準時的講一些專案實戰案例。找工作什麼最重要?看中的還是你的實戰經驗