这个错误的原因是由于URL没有正确指定协议(HTTP或HTTPS)导致的。在使用Requests库发送请求时,需要给出一个完整的URL,包括协议(HTTP或HTTPS),主机名,路径等信息。如果URL没有指定协议,Requests就无法确定应该使用HTTP还是HTTPS协议进行请求。
解决这个问题的方法是,检查你生成URL的代码是否正确,确保URL中包含HTTP或HTTPS协议前缀。如果生成URL的代码没有问题,则可能是输入的URL中没有指定协议。此时,需要手动添加协议前缀。以下是一些常见的解决方法:
- 在URL前添加HTTP协议前缀
import requests
url = 'http://example.com'
response = requests.get(url)
- 在URL前添加HTTPS协议前缀
import requests
url = 'https://example.com'
response = requests.get(url)
- 使用URL解析库解析URL,自动给URL添加HTTP或HTTPS协议前缀
import requests
from urllib.parse import urlparse
url = 'example.com'
parsed_url = urlparse(url)
if parsed_url.scheme:
# URL已包含协议前缀
response = requests.get(url)
else:
# URL没有协议前缀,自动添加HTTP协议前缀
url = 'http://' + url
response = requests.get(url)
使用上述方法,你应该可以成功解决“requests.exceptions.InvalidURL: Invalid URL {url}: No schema supplied ”的问题。