闲着没事,写了个小爬虫,爬了5万多BT种子。
5万多种子有近3个G的大小,开打文件夹巨卡,就想把种子转成磁力,这样,5万多种子也就一个TXT文件就可以存下了。
先网上找找别人是怎么干的,
发现都是用bencode这个模块。例子也有,但都是python2.7的,模块本身也只支持python2.7.
使用bencode模块的例子如下:
import bencode
import sys
import hashlib
import base64
#读取种子文件
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
是不是很简单。。可我用的是Python3哇,也不想学python2.7
先试了试,直接bencode出错,网上有一两个贴子说可以改模块代码,我试了,没改成。。还是不行
还是看自己的,先去pypi上看bencode有没有更新,发现有一个bencode.py的模块,据说就是bencode的高级版,4.0 版本还支持Python3, 下来试试,
先复制上面的代码。做些修改,把be