如何在使用 python 下载时优雅地超时

2024-05-07

我正在循环下载大量文件,其中包含以下代码:

try:
    urllib.urlretrieve(url2download, destination_on_local_filesystem)
except KeyboardInterrupt:
    break
except:
    print "Timed-out or got some other exception: "+url2download

如果连接刚刚启动时服务器在 URL url2download 上超时,则可以正确处理最后一个异常。但有时服务器响应并开始下载,但服务器速度太慢,即使是一个文件也需要几个小时,最终它返回类似以下内容的内容:

Enter username for Clients Only at albrightandomalley.com:
Enter password for  in Clients Only at albrightandomalley.com:

并且只是挂在那里(尽管如果通过浏览器下载相同的链接,则不会询问用户名/密码)。

在这种情况下,我的意图是——跳过此文件并转到下一个文件。问题是——如何做到这一点? python中有没有一种方法可以指定下载一个文件需要多长时间,如果已经花费了更多时间,则中断并继续?


Try:

import socket

socket.setdefaulttimeout(30)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在使用 python 下载时优雅地超时 的相关文章

随机推荐