python请求。状态代码没有返回正确的值

2024-09-28 03:20:56 发布

您现在位置:Python中文网/ 问答频道 /正文

请看这里的文档:http://docs.python-requests.org/en/latest/user/quickstart/

这应该会打印200,而且确实如此。在

import requests
r = requests.get('http://souke.xdf.cn/Category/1-40-0-0.html?v=5&page=1&pagesize=50')
print r.status_code

这应该打印404,但它打印200

^{pr2}$

为什么?在

有没有其他方法来识别404错误的发生?在


Tags: 文档orgimporthttpdocsgetcnrequests
3条回答

问题不在于requests,而在于你正在访问的站点。它正在返回200。在

您可以通过使用类似Chrome开发工具之类的工具查看标题来确认这一点:

Request URL:http://souke.xdf.cn/CategoryXXX/1-40-0-0.html?v=5&page=1&pagesize=50
Request Method:GET
Status Code:200 OK
.raise_for_status()

如果不是200,则会产生错误

这比用

^{pr2}$

您要查找的页面在服务器上找到,因此服务器响应为200 OK。 不过,您可以使用Requests的raise_for_status(),在发现服务器错误时引发异常,如404、401等等。在

import requests

>>>>r = requests.get('http://something.com/404/')
>>>>print r.status_code
404
>>>>r.raise_for_status()
Traceback (most recent call last):
File "requests/models.py", line 832, in raise_for_status
raise http_error
requests.exceptions.HTTPError: 404 Client Error

相关问题 更多 >

    热门问题