微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

URL读取时间过长时如何跳出循环

如何解决URL读取时间过长时如何跳出循环

嗨,如果阅读时间过长,我有以下代码可以跳过特定的 URL。

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()
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。