使用 urllib 请求更改或创建超时

Pro*_* NZ 2 python timeout urllib python-3.x

我有这段代码,我想知道是否有任何方法可以添加超时延迟:

req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
WD = urlopen(req).read()
Run Code Online (Sandbox Code Playgroud)

Sim*_*mon 5

urlopen()函数内置了一个超时方法:

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

可选的 timeout 参数指定阻塞操作(如连接尝试)的超时(以秒为单位)(如果未指定,将使用全局默认超时设置)。这实际上仅适用于 HTTP、HTTPS 和 FTP 连接。

所以在你的代码中:

time = 50
WD = urlopen(req, timeout=time).read()
Run Code Online (Sandbox Code Playgroud)

您只能根据上述参数更改您方(即客户端)的请求。服务器端也可能会发送超时,但无法改变这一点。