重复执行功能,直到在Python中为true

时间:2018-11-12 08:51:19

标签: python

谷歌搜索很多,但我仍然没有解决办法 所以我有一个解析器def:

def parse_page(url):

    req = request.get(url, headers=headers(), proxies=dict(http='socks4://' + get_proxy()), timeout=5)

(仅以代码为例)

有时代理服务器已死或可能发生其他错误(超时,错误500),但无论如何我都需要发出此请求,并尝试直到其返回true

那我该怎么办?

我尝试了 retrying lib但没有成功

谢谢!

2 个答案:

答案 0 :(得分:0)

怎么样:

import time
req = 0
while not req:
    try:
        req = request.get(url, headers=headers(), proxies=dict(http='socks4://' + get_proxy()))

    except:
        time.sleep(5)

一旦您获得req,无论它是什么,只要它不是True,它将是None,并且将退出循环。

答案 1 :(得分:-1)

while parse_page(url,urls[url]) == False:
    print('Something happened... Trying again...')
else:
    print(url + 'Is saved.. Keep going...')

只需虚假,就可以了...

如果有人用谷歌搜索,我会离开。