HTTPError 是 URLError 的子类,服务器上每一个 HTTP 的响应都包含一个数字的“状态码”。
这些异常包括典型的:404(页面无法找到),403(请求禁止)和 401(验证请求)。
因为 Python 默认会自动帮你处理重定向方面的内容(状态码 300 ~ 399 范围),状态码 100 ~ 299 的范围是表示成功,所以你需要关注的是 400 ~ 599 这个范围的状态码(因为它们代表响应出了问题)。
其中,出现 4xx 的状态码,说明问题来自客户端,就是你自己哪里做错了;出现 5xx 的状态码,那就表示与你无关了,是来自服务器的问题。
下表列举了常用的 HTTP 状态码以及详细的含义:
| 状态码 |
内容 |
详细内容 |
| 1xx |
这一类型的状态码,代表请求已被接受,需要继续处理。 | |
| 100 |
Continue |
收到请求,客户端应当继续发送请求。 |
| 101 |
Switching Protocols |
服务器通过 Upgrade 消息头通知客户端采用不同的协议来完成这个请求。 |
| 2xx |
成功 | 这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。 | |
| 200 |
OK |
请求已成功,请求的响应头或数据体将随此响应返回。 |
| 201 |
Created |
请求已经被实现,而且有一个新的资源已经依据请求的需要而创建,且其 URI 已经随 Location 头信息返回。 |
| 202 |
Accepted |
|

本文主要介绍了Python爬虫中遇到的HTTP错误处理,重点是HTTP状态码404、403、401以及4xx和5xx的区别。4xx状态码表明客户端错误,5xx则表示服务器端问题。
2727

被折叠的 条评论
为什么被折叠?



