lzb1001 发表于 2022-5-6 20:20:12

关于dmoz网站

使用异常处理方法:

from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError

req = Request('http://www.dmoz.org')

try:
    response = urlopen(req)
except HTTPError as e: # 子类HTTPError必须写在URLError的前面!
    print('The sever couldn\'t fulfill the request!')
    print('Error code:', e.code)
except URLError as e:
    print('We failed to reach a sever!')
    print('Reason:', e.reason)

#else:
# Everything is fine

运行后返回如下结果:

The sever couldn't fulfill the request!
Error code: 400

错误代码400,按照小甲鱼教材所说,如果出现4xx的状态码,说明问题来自客户端(就是我们自己哪里做错了)?


------------------------------------------

以下根据小甲鱼在教材中所说整理:

HTTPError是URLError的子类。服务器上每一个HTTP的响应都包含一个数字的“状态码”,有时候状态码会指出服务器无法完成的请求类型,一般情况下Python会帮你处理一部分这类响应(例如:响应的是一个“重定向”,要求客户端从别的地址来获取文档,那么urllib会自动为你处理这个响应);但有些无法处理的就会抛出HTTPError异常,这些异常包括典型的404(页面无法找到)、403(请求禁止)、401(验证请求)。

---状态码范围100~299:表示成功访问
---状态码范围300~399:表示重定向方面的内容(Python默认会自动帮你处理)
---状态码范围400~599:表示响应出了问题(需要重点关注!)如果出现4xx的状态码,说明问题来自客户端(就是你自己哪里做错了);如果出现5xx的状态码,说明问题来自服务器(就是与你无关)

Twilight6 发表于 2022-5-6 20:37:31



例如:
    403 就是服务器拒绝客户请求,客户访问了不该访问的资源路径,又或者过于频繁被认为是恶意访问

    404 就是资源找不到了,是因为你输入了一个错误的路径


所以 4 开头的主观上都是出在客户端这,不小心输错资源路径啥的

500 错误是服务器中代码出现错误,当然和你无关啦

其他的错误码可以去百度查查,我也只了解一些常用的

python爱好者. 发表于 2022-5-7 09:10:37

Twilight6 发表于 2022-5-6 20:37
例如:
    403 就是服务器拒绝客户请求,客户访问了不该访问的资源路径,又或者过于频繁被认为是恶意 ...

https://fishc.com.cn/forum.php?mod=viewthread&tid=103840&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403
这个怎么样?
页: [1]
查看完整版本: 关于dmoz网站