2

我正在尝试连接到一个 torrent 跟踪器以接收一个同伴列表来播放比特 torrent,但是我在形成正确的 GET 请求时遇到了麻烦。

据我了解,我必须从 .torrent 文件中获取经过编码的“信息”部分的 20 字节 SHA1 哈希。我使用以下代码:

h = hashlib.new('sha1')
h.update(bencode.bencode(meta_dict['info']))
info_hash =  h.digest()

这就是我卡住的地方。我不知道如何创建正确的 url 编码 info_hash 以作为参数粘贴到 URL 字符串中。

我相信它涉及 urllib.urlencode 和 urllib.quote 的某种组合,但是我的尝试到目前为止还没有奏效。

4

2 回答 2

1

好吧有点晚了,但可能会对某人有所帮助。

使用模块requests自己对 url 进行编码。首先,您需要使用参数(info_hash、peer_id 等)创建一个字典。然后你只需要做一个获取请求

response = requests.get(tracker_url, params=params)
于 2017-08-03T14:15:33.593 回答
0

我认为这urllib.quote_plus()就是你所需要的。

于 2012-11-29T01:52:15.537 回答