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

  • Post category:Python

这个错误的原因是由于URL没有正确指定协议(HTTP或HTTPS)导致的。在使用Requests库发送请求时,需要给出一个完整的URL,包括协议(HTTP或HTTPS),主机名,路径等信息。如果URL没有指定协议,Requests就无法确定应该使用HTTP还是HTTPS协议进行请求。

解决这个问题的方法是,检查你生成URL的代码是否正确,确保URL中包含HTTP或HTTPS协议前缀。如果生成URL的代码没有问题,则可能是输入的URL中没有指定协议。此时,需要手动添加协议前缀。以下是一些常见的解决方法:

  1. 在URL前添加HTTP协议前缀
import requests

url = 'http://example.com'
response = requests.get(url)
  1. 在URL前添加HTTPS协议前缀
import requests

url = 'https://example.com'
response = requests.get(url)
  1. 使用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 ”的问题。