python请求错误处理

时间:2014-05-15 16:49:33

标签: python python-requests

我正在编写一些小型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

2 个答案:

答案 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