问题描述:
在使用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()
方法自动添加协议头来解决该问题。需要确保请求链接的格式正确且完整,包括协议头、域名、路径等。