python - 请求整个请求超时?

python - requests timeout for the whole request?

我正在抓取许多站点以获取数据,但某些链接永久冻结了我的脚本。这不应该发生,因为我使用了这样的超时:

page = requests.get(url,timeout=4)

我想要整个请求超时。因此,当请求需要 4 秒时,它将停止尝试。 我搜索了 requests 文档,找到了读取和连接超时的代码:

r = requests.get(url, timeout=(3.05, 27))

但是,当我尝试使用它时出现类型错误:

Timeout value connect was (3.05, 27), but it must be an int or float.

如何获得我想要的超时时间?

基于与 docker 相关的 issue here,它是 python-requests 中的错误,已在 python-requests version 2.4.3-4 中修复。升级到最新版本应该没问题。

如果你有 pip 使用 pip install -U requests