在urllib2.URLError后再次尝试:
问题描述:
此代码是否正确?我最终得到了Errno 111,该程序仍然退出,而不是一次又一次地尝试。在urllib2.URLError后再次尝试:<urlopen错误[Errno 111]连接被拒绝>
当我收到连接错误时,我想等待10秒,然后重试以再次获取URL。
我正在使用Python 2.7。
import errno
for attempt in range(20):
try:
browser.get(url)
except EnvironmentError as exc:
if exc.errno == errno.ECONNREFUSED:
anow = datetime.datetime.now()
print("got a 111 connection error",anow)
time.sleep(10)
elif exc.errno == errno.ECONNRESET:
anow = datetime.datetime.now()
print("got a RESET connection error",anow)
time.sleep(10)
else:
continue
else:
break
else:
print("tried 20 times - kept getting Error")
答
所以这是我落得这样做,它似乎工作:我想要的是什么错误之后,将重新再试 什么,还告诉我是什么错误。此代码在PythonANywhere上运行,所以我不担心键盘中断等等。此外,range()中的尝试确保代码不会像在While True循环中那样永远运行。
for attempt in range(1,3):
try:
browser.get(url)
print("browser success",i)
break
except Exception as e:
print(e," Attempt:" + str(attempt))
time.sleep(4)
pass
111是否与您的代码相关?你确定那些想要帮助你的人不必查找你可以提供给你的东西吗? –