torrents baixados usando python urllib2 não conseguem abrir no cliente bittorrent

0

Eu tenho usado python para baixar torrents por algum tempo, mas por cerca de uma semana ou mais, esses arquivos torrent pararam de abrir na transmissão. Aqui está o código:

torrent = urllib2.urlopen(torrent URL, timeout = 30)
output = open('mytorrent.torrent', 'wb')
output.write(torrent.read())

Isso costumava funcionar bem no passado, mas agora não carrega na transmissão. Eu tentei outro cliente 'tixati' que vomitou um erro "erro de análise meta-arquivo". Se eu baixar o arquivo torrent via navegador, ele abre bem em ambos os clientes. Eu tentei alterar as opções de arquivo para output = open('mytorrent.torrent', 'w') , mas o resultado é o mesmo.

Alguém tem alguma ideia?

    
por koogee 03.06.2013 / 10:55

1 resposta

3

urllib2 faz exatamente o que é dito e não descompacta automaticamente os fluxos de conteúdo. Felizmente, esse bit não é muito difícil .

Além disso, se você estiver sempre usando o mesmo servidor, poderá ignorar a verificação da codificação gzip.

from io import BytesIO
import gzip

torrent = urllib2.urlopen(torrentURL, timeout=30)
buffer = BytesIO(torrent.read())
gz = gzip.GzipFile(fileobj=buffer)
output = open('mytorrent.torrent', 'wb')
output.write(gz.read())

Eu adicionei em io.BytesIO para manter isso compatível com o Python 3.

    
por Oli 03.06.2013 / 13:44