如果请求失败,mechanize是否可以选择重试请求?

时间:2014-01-19 20:17:24

标签: python mechanize

有没有办法设置机械化来重试HTTP请求,如果它因超时而失败?或者,我是否需要将其置于无限循环中,并在请求成功时使其突破?

1 个答案:

答案 0 :(得分:2)

您需要自己测试超时异常。以下未经测试的代码显示了这个想法:

import mechanize
import socket
timeout_occurred = False
br = mechanize.Browser()
try:
    br.open("http://python.org/", timeout=0.001)
except mechanize.URLError as exc:
    if isinstance(exc.reason, socket.timeout):
        timeout_occurred = True
if timeout_occurred:
    # retry
    br.open("http://python.org/", timeout=0.001)

此外,您还需要阅读关于超时如何工作的常见问题解答。