有没有办法设置机械化来重试HTTP请求,如果它因超时而失败?或者,我是否需要将其置于无限循环中,并在请求成功时使其突破?
答案 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)
此外,您还需要阅读关于超时如何工作的常见问题解答。