Requests报”requests.exceptions.InvalidSchema: No connection adapters were found for {url} “的原因以及解决办法

  • Post category:Python

这个报错通常是由于请求的URL协议不正确或者缺失协议而导致的。当你在使用requests库发起请求时,你必须在url前面加上协议(http或https),否则就会导致该报错。

以下是一些可能出现该错误的示例:

  1. 请求的URL没有添加协议前缀:
import requests

url = "www.baidu.com"
response = requests.get(url)

通过上面的代码发起GET请求时,会报下面的错误:

requests.exceptions.InvalidSchema: No connection adapters were found for 'www.baidu.com'

此时url前面没有添加协议,需要添加http协议:

url = "http://www.baidu.com"
response = requests.get(url)
  1. 请求的URL协议不正确:
import requests

url = "https//:www.baidu.com"
response = requests.get(url)

通过上面的代码发起GET请求时,会报下面的错误:

requests.exceptions.InvalidSchema: No connection adapters were found for 'https//:www.baidu.com'

此时url协议写错了,正确的应该是https://:

url = "https://www.baidu.com"
response = requests.get(url)

综上所述,解决该报错的步骤为:

  1. 检查请求的URL是否添加了协议前缀,如http://或https://;
  2. 检查请求的URL协议是否写错了,如http://写成了htpp://。

如果以上两点都没有问题,那么就要检查网络连接或目标服务器是否可达。如果网络连接或目标服务器出问题,就无法正常访问URL,此时也会报该错误。