Python 请求——如何判断您是否';我们得到一个404

Python 请求——如何判断您是否';我们得到一个404,python,python-requests,Python,Python Requests,我正在使用请求库并访问一个网站,通过以下代码从中收集数据: r = requests.get(url) 我想在输入错误的URL并返回404错误时添加错误测试。如果我故意输入一个无效的URL,当我这样做时: print r 我明白了: <Response [404]> 编辑: 我想知道如何测试它。对象类型仍然相同。当我执行r.content或r.text时,我只需获取自定义404页面的HTML 看看下面的例子: 演示: 如果希望请求为错误代码(4xx或5xx)引发异常,请调用

我正在使用请求库并访问一个网站,通过以下代码从中收集数据:

r = requests.get(url)
我想在输入错误的URL并返回404错误时添加错误测试。如果我故意输入一个无效的URL,当我这样做时:

print r
我明白了:

<Response [404]>

编辑:

我想知道如何测试它。对象类型仍然相同。当我执行
r.content
r.text
时,我只需获取自定义404页面的HTML

看看下面的例子:

演示:

如果希望
请求
为错误代码(4xx或5xx)引发异常,请调用
r.raise\u以获取\u状态()


如果希望更明确,请使用
If r.ok:

看看文档:第一页说要看r.status\u codeWell该死,真烦人。我希望有一种方法可以获取请求。除了2XX之外,无需进行额外调用,就可以以任何理由获取请求。@AsfandQazi:为什么要为1xx或3xx状态码引发异常?这些不是错误情况。1xx和3xx应由库透明处理。我是专门谈论4xx错误的。当然,有时您可能希望读取4xx响应,因此我们不应该将其强加给每个人,但我希望有一个标志可以传递给
.get()
,而不是事后调用函数。@AsfandQazi:如果这对您很重要的话,编写自己的包装函数是很简单的。它只是看起来有点不整洁,仅此而已
if r.status_code == 404:
    # A 404 was issued.
>>> import requests
>>> r = requests.get('http://httpbin.org/status/404')
>>> r.status_code
404
>>> r = requests.get('http://httpbin.org/status/404')
>>> r.raise_for_status()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "requests/models.py", line 664, in raise_for_status
    raise http_error
requests.exceptions.HTTPError: 404 Client Error: NOT FOUND
>>> r = requests.get('http://httpbin.org/status/200')
>>> r.raise_for_status()
>>> # no exception raised.
if r:
    # successful response