我使用 python 请求连接到一个网站,并且工作正常。
我的问题是我有一个我使用的代理列表,如果其中一个代理 ip 返回 404 错误,那么我需要我的 for 循环转到循环顶部并继续,直到我得到 200 的响应。
当我的循环遇到异常/400-503 错误时,它会返回到代码顶部,但只是离开循环,并继续代码。
快速说明:代理数组有 6 个 ip,循环 dosent 将它们全部变为 true。
有什么问题,我使用以下代码,继续?
for l in list:
for a in otherlist:
for proxy in randomProxy:
print 'Using Proxy: ', proxy
try:
r = requests.get(url, timeout=20, headers=headers, proxies=proxy)
if r.status_code == 200:
response = r
print 'Good Proxy: ', proxy
pass
else:
print 'Bad Proxy: ', proxy
continue
except requests.exceptions.RequestException as e:
# A serious problem happened, like an SSLError or InvalidURL
print "Error: {}".format(e)
continue
我真的不明白为什么会这样,也许我弄错了继续的工作方式?
这可能有效
for proxy in randomProxy:
print 'Using Proxy: ', proxy
try:
r = requests.get(url, timeout=20, headers=headers, proxies=proxy)
if r.status_code == 200:
response = r
print 'Good Proxy: ', proxy
break
else:
print('Bad Proxy:', proxy)
print('Proxy is not working!')
continue
except:
print('Bad Proxy:', proxy)
print('Proxy is not working!')