问题描述
timeout = 30
loop begins below for different urlz {
timeout_start = time.time()
webpage = urlopen(urlz[i]).read()
if time.time() > timeout_start + timeout:
continue}
我的问题是;在向下移动以检查 if 条件之前,程序不会执行代码行“webpage = urlopen(urlz[i]).read()”?在这种情况下,我认为它不会检测页面是否花费了太长时间(阅读时间超过 30 秒)。如果程序卡住了 30 秒,我基本上想跳过这个 URL 并转到下一个(即我们在读取这个特定 URL 时遇到了问题)。
解决方法
urlopen()
函数内置了超时方法:
urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)
所以在你的代码中:
timeout = 30
loop begins below for different urlz {
try:
webpage = urlopen(urlz[i],timeout=timeout).read()
}