admin 管理员组文章数量: 1184232
小编典典
您可以使用从BitTorrent中提取的bencode模块来执行此操作。
为了展示一个例子,我从这里下载了Ubuntu的torrent ISO:
http://releases.ubuntu/12.04/ubuntu-12.04.1-desktop-i386.iso.torrent
然后,您可以像这样在Python中进行解析:
>>> import bencode
>>> torrent = open('ubuntu-12.04.1-desktop-i386.iso.torrent', 'r').read()
>>> metadata = bencode.bdecode(torrent)
磁力哈希仅从洪流元数据的“ info”部分计算得出,然后在base32中进行编码,如下所示:
>>> hashcontents = bencode.bencode(metadata['info'])
>>> import hashlib
>>> digest = hashlib.sha1(hashcontents).digest()
>>> import base64
>>> b32hash = base64.b32encode(digest)
>>> b32hash
'CT76LXJDDCH5LS2TUHKH6EUJ3NYKX4Y6'
您可以通过查看此处来验证这是正确的,并且您会看到磁铁链接为:
magnet:?xt=urn:btih:CT76LXJDDCH5LS2TUHKH6EUJ3NYKX4Y6
如果要在磁铁URI中填写一些额外的参数:
>>> params = {'xt': 'urn:btih:%s' % b32hash,
... 'dn': metadata['info']['name'],
... 'tr': metadata['announce'],
... 'xl': metadata['info']['length']}
>>> import urllib
>>> paramstr = urllib.urlencode(params)
>>> magneturi = 'magnet:?%s' % paramstr
>>> magneturi
'magnet:?dn=ubuntu-12.04.1-desktop-i386.iso&tr=http%3A%2F%2Ftorrent.ubuntu%3A6969%2Fannounce&xl=729067520&xt=urn%3Abtih%3ACT76LXJDDCH5LS2TUHKH6EUJ3NYKX4Y6'
2020-12-20
版权声明:本文标题:python下载bt文件_给定一个.torrent文件,如何在python中生成一个磁力链接? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1766556047a3469698.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论