我正在使用包downloading a file over HTTPurllib编写一个简单的代码。除了我想处理可能发生的网络问题外,一切都很好。
检查计算机是否联机(已连接到internet)。如果是真的就继续。
重新启动文件下载如果在下载过程中,连接丢失或太差。
如果可能的话,我想尽量少用包裹。
这是我的实际代码:

import urllib
import urllib.request
url = "http://my.site.com/myFile"
urlSplited = url.split('/')[-1];
print ("Downloading : "+urlSplited)
urllib.request.urlretrieve(url, urlSplited)

为了检查连接是否被破坏,我相信我可以做一些类似的事情
while connection() is true:
   Download()

但那会下载很多次。。
我在Linux上工作。

最佳答案

我建议你使用一个组合的尝试,而睡眠功能。这样地:

import urllib
import urllib.request
import time
url = "http://my.site.com/myFile"
urlSplited = url.split('/')[-1];
try_again = True
print ("Downloading : "+urlSplited)

while try_again:
    try:
        urllib.request.urlretrieve(url, urlSplited, timeout = 100)
        try_again = False
    except Exception as e:
        print(e)
        time.sleep(600)

关于python - Python和Urllib。如何处理网络异常?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46265315/

10-13 01:10