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

  • Post category:Python

这个错误信息 “requests.exceptions.URLRequired: Invalid URL ‘{url}’: No schema supplied” 的意思是 “无法确定URL'{url}’的格式,因为没有提供URL的协议”。

在编写Python中的Requests请求时,我们必须指定用哪种协议发送请求,比如”http://”或”https://”。如果我们没有在URL中提供前缀,Requests会认为我们提供的是一个无效的URL,从而抛出该异常。

为了解决这个问题,我们可以尝试以下几种方法:

  1. 检查URL是否为空或者是否正确:首先,我们需要确认请求URL是否正确并包含协议。例如,对于一个使用 HTTP 协议的网站,URL 格式应该是 “http://www.example.com” 或者 “https://www.example.com”。如果 URL 格式不正确,我们需要更正。

  2. 使用变量存储URL:我们可以将URL存储在一个变量中,然后将变量传递给Requests的请求方法中。这样可以避免在不经意间使用错误的URL。示例代码如下:

url = 'http://www.example.com'
response = requests.get(url)

  1. 使用Python自带的urllib.parse库中的urlparse函数:这个函数可以解析URL并返回其各个组成部分。例如,我们可以使用该函数检查请求URL是否包含协议。如果没有,我们就需要补充上去:

“`
from urllib.parse import urlparse

url = ‘www.example.com’
parsed_url = urlparse(url)

if not parsed_url.scheme:
url = ‘http://’ + url

response = requests.get(url)
“`

通过以上方法,我们就可以避免由于请求URL格式不正确而引起的 “requests.exceptions.URLRequired: Invalid URL ‘{url}’: No schema supplied” 异常了。