猿问

if的条件没满足,想要重试几次,这种逻辑怎么操作?

比如设置了一个判断条件:

if requests.get(so_url,proxies=proxy,headers=headers).status_code == 200:
    html = requests.get(so_url,proxies=proxy,headers=headers).text
    url = re.search('<div class="img-box">.*?<a.*?href="(.*?)"><span>',html,re.S).group(1).replace('amp;','')
    print(url)
else:
    proxy = str(proxy).replace("{'http': 'http://",'').replace("'}",'')
    #当条件不满足时,想要重试请求几次

请问这种逻辑该怎么设计?
一开始在else下直接调用了该函数,可是后来好像有内存溢出的情况?
后来干脆把上面的判断在else下又写了一遍,可是也只能重试一次...

想要的效果是,如果走到else了,那就把判断条件再重试N次...

慕码人8056858
浏览 505回答 3
3回答

海绵宝宝撒

递归呗,你需要一个变量来记录请求次数

翻过高山走不出你

用Session()对象 python3 import requests as req ssn = req.Session() ssn.headers=headers n=9 for i in range(n): ssn.proxies = proxy rsp = ssn.get(url) if rsp.status_code == 200: html=rsp.text print(url) break else: proxy = str(proxy).replace("{'http': 'http://",'').replace("'}",'')
随时随地看视频慕课网APP

相关分类

Python
我要回答