我正在尝试连接到一个torrent跟踪器以接收一个用于播放bit torrent的对等列表,但是我无法形成正确的GET请求。
据我所知,我必须从.torrent文件中获取bencoded'info'部分的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的某种组合,但到目前为止我的尝试还没有奏效。
答案 0 :(得分:1)
使用模块requests
按自己的方式对网址进行编码。首先,您需要使用参数(info_hash,peer_id等)创建字典。然后你只需要做一个获取请求
response = requests.get(tracker_url, params=params)
答案 1 :(得分:0)
我认为urllib.quote_plus()
就是你所需要的。