比如设置了一个判断条件:
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次...
3 回答
翻过高山走不出你
TA贡献1875条经验 获得超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("'}",'')
添加回答
举报
0/150
提交
取消