Python 2.7-无法下载大文件

时间:2018-06-22 13:56:45

标签: python-2.7 ubuntu-16.04 urllib

我正在尝试在python 2.7中下载一些相当大的文件(每个文件在300至700 MB之间),并且在检索文件的过程中遇到了连接重置的问题。具体来说,我使用的是urllib.urlretrieve(url, file_name),每隔一段时间我就会得到socket.error: [Errno 104] Connection reset by peer

现在,我对套接字和Web协议的工作方式非常不熟悉,因此我尝试了以下操作,但并不真正知道它是否会有所帮助:

response = urllib.urlopen(url)
CHUNK_SIZE = 16 * 1024
with open(file_name, 'wb') as f:
    for chunk in iter(lambda: response.read(CHUNK_SIZE), ''):
        f.write(chunk)

编辑:我猜我应该相信这段代码的作者:https://stackoverflow.com/a/1517728/3002473

听起来不错,我们一次只下载了一点,所以它应该对该Errno 104不太“敏感”,但是我基本上对这一切都一无所知有效,所以我不知道这是否真的有所作为。

经过一些测试后,它似乎稍微好更好?但这可能只是巧合。通常,在引发此错误之前,我可以下载一个文件,也许两个文件。

为什么我会收到Errno 104,我该如何防止这种情况发生?出于好奇,我应该使用urllib2而不是urllib吗?

0 个答案:

没有答案