所以我有一堆我想废弃的链接,但经常发生的是,在循环中间(当尝试连接到随机链接时),突然通过代理的连接失败,循环是停止并且我的程序关闭。
这是代码:
import requests
from bs4 import BeautifulSoup as soup
#Setting Proxy
proxies = {"http": "http://232.454.676.898:8888"}
#List Of Links
link_strings = ['http://foo1.com','http://foo2.com','http://foo3.com', ... ,'http://foo999.com']
for link in link_strings:
url = link
uClient = requests.get(url, proxies=proxies)
page_html = uClient.text
uClient.close()
page_soup = soup(page_html, "html.parser")
#Do some scrapping
那么,如何处理这个问题?
我应该尝试通过代理连接直到成功吗?但如何做到这一点呢?
或者我应该再次运行当前循环?但如何做到这一点呢?
最佳答案
try catch requests.get()
抛出的异常并循环直到连接正常:
exception = True
while (exception):
exception = False
try:
uClient = requests.get(url, proxies=proxies)
except requests.exceptions.RequestException as e:
exception = True
请注意,如果连接永远无法工作,这可能会造成无限循环!相反,您可以在连接失败时继续
:
try:
uClient = requests.get(url, proxies=proxies)
except requests.exceptions.RequestException as e:
continue
关于python - 即使通过代理的连接失败,如何重试当前循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48720888/