我正在编写一些小型python应用程序,它使用请求获取并将数据发布到html页面。
现在我遇到的问题是,如果我无法访问html页面,代码将停止并超出最大重试次数。如果我无法访问服务器,我希望能够做一些事情。
这样的事情可能吗?
这是示例代码:
import requests
url = "http://127.0.0.1/"
req = requests.get(url)
if req.status_code == 304:
#do something
elif req.status_code == 404:
#do something else
# etc etc
# code here if server can`t be reached for whatever reason
答案 0 :(得分:5)
您希望处理异常requests.exceptions.ConnectionError
,如下所示:
try:
req = requests.get(url)
except requests.exceptions.ConnectionError as e:
# Do stuff here
答案 1 :(得分:1)
您可能希望在捕获ConnectionError
时设置合适的超时:
url = "http://www.stackoverflow.com"
try:
req = requests.get(url, timeout=2) #2 seconds timeout
except requests.exceptions.ConnectionError as e:
# Couldn't connect
如果您想更改重试次数,请参阅this answer。