- 原因
一般来说,当使用Requests库发送请求时,会出现requests.exceptions.Timeout: {timeout message}
的错误。这是由请求过程所花费的时间超过了设定的超时时间导致的。超时时间默认为None,表示请求不会超时,但是如果想要手动设置一个较短的请求超时时间,就需要使用timeout
参数了。
- 解决办法
下面是解决requests.exceptions.Timeout
错误的方法:
2.1 增加参数timeout
在发送请求的时候,可以增加一个timeout
参数,来设定一个较短的请求超时时间。timeout
参数可以是一个浮点数或元组类型的值,分别表示设置请求连接超时时间和响应读取超时时间。例如:
import requests
response = requests.get('https://www.examplepage.com', timeout=(0.1, 1))
上面的代码设置了请求连接超时时间为0.1秒、响应读取超时时间为1秒。
2.2 修改默认超时时间
如果不希望在每次发送请求时都手动设置timeout
参数,可以通过修改默认超时时间的方式来解决问题。可以通过修改requests
库的全局配置来设置默认超时时间,全局配置位于requests.packages.urllib3.util.timeout.Timeout
类中的DEFAULT_TIMEOUT
属性。
例如:
import requests.packages.urllib3.util.timeout as timeout
timeout.DEFAULT_TIMEOUT = 2
上面的代码将全局默认超时时间设置为2秒。此后,即使不设置timeout
参数,每次请求的默认超时时间也会是2秒。
以上就是解决requests.exceptions.Timeout
错误的两种常用办法,选择的方式要根据个人实际情况决定。