我正在使用包downloading a file over HTTP
和urllib
编写一个简单的代码。除了我想处理可能发生的网络问题外,一切都很好。
检查计算机是否联机(已连接到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/