Requests报”requests.exceptions.InvalidURL: Invalid URL {url}: No schema supplied “的原因以及解决办法

  • Post category:Python

问题描述:

在使用Requests库进行网络请求时,可能会出现如下错误信息:

requests.exceptions.InvalidURL: Invalid URL {url}: No schema supplied

问题原因:

该错误通常是因为请求链接的格式不正确导致的。在使用Requests库发送请求时,需要确保请求链接的格式正确且完整,包括协议头、域名、路径等。

如果请求链接中没有包含协议头,Requests库就无法识别请求协议类型,从而出现该错误。

解决办法:

1.添加协议头

首先,需要检查请求链接中是否包括协议头。如果没有,可以手动添加协议头。

例如,如果请求链接为www.example.com/api/,可以将其改为http://www.example.com/api/https://www.example.com/api/,具体协议类型取决于请求所需的协议类型。

2.使用urlparse()方法

另外一种解决方法是使用urlparse()方法解析请求链接,并自动添加协议头,示例代码如下:

from urllib.parse import urlparse

url = 'www.example.com/api/'

parsed_url = urlparse(url)

if not parsed_url.scheme:
    url = 'http://' + url

以上示例代码中,首先使用urlparse()方法解析请求链接,如果返回的协议类型为空,则手动添加协议头http://

总结:

requests.exceptions.InvalidURL: Invalid URL {url}: No schema supplied错误通常是因为请求链接的格式不正确导致的,可以通过手动添加协议头或使用urlparse()方法自动添加协议头来解决该问题。需要确保请求链接的格式正确且完整,包括协议头、域名、路径等。