请求 – 如何判断你是否得到404
我正在使用请求库和访问一个网站从它收集数据与以下代码:
r = requests.get(url)
我想添加错误testing,以便input不正确的URL并返回404错误。 如果我故意input一个无效的URL,当我这样做:
print r
我得到这个:
<Response [404]>
编辑:
我想知道如何testing。 对象types仍然相同。 当我做r.content
或r.text
,我只是得到一个自定义404页面的HTML。
看r.status_code
属性 :
if r.status_code == 404: # A 404 was issued.
演示:
>>> import requests >>> r = requests.get('http://httpbin.org/status/404') >>> r.status_code 404
如果您想requests
引发错误代码(4xx或5xx)的exception,请调用r.raise_for_status()
:
>>> 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.