我正在编写一个简单的代码,即downloading a file over HTTP,使用包urllib和urllib.request。除了我希望能够处理可能发生的网络问题外,一切都很好。
如果可能的话,我希望尽可能少使用软件包。以下是我的实际代码:
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。
发布于 2017-09-17 15:09:18
我建议你使用一种尝试,同时和睡眠功能的组合。如下所示:
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)发布于 2017-09-17 14:51:01
将而替换为if,那么它下的所有操作将只运行一次。
if connection() == True:
Download()而且,connection()函数可以是这样的:
try:
urllib.urlopen(url, timeout=5)
return True
return Falsehttps://stackoverflow.com/questions/46265315
复制相似问题