在 urllib2 之后重试。URLError: <urlopen error [errno 111] 连接被拒绝>



这段代码正确吗?我最终得到一个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

相关内容

最新更新