问题描述
在使用Python中的Requests包发送请求时,有时会出现如下错误:
requests.exceptions.URLRequired: Invalid URL '{url}': No schema supplied
出现这个错误的原因是什么?如何解决这个问题呢?
解决方案
这个问题的根本原因是URL格式不正确,没有指定URL的schema。比如,当我们使用如下代码发送请求时:
import requests
url = "www.baidu.com"
response = requests.get(url)
就会出现这个错误。
正确的URL格式应该是包含schema的,比如:
url = "http://www.baidu.com"
schema通常是指HTTP或HTTPS。因此,我们可以采用以下方法解决这个问题:
在代码中指定schema
我们可以在代码中显式地指定schema,比如:
import requests
url = "http://www.baidu.com"
response = requests.get(url)
这样就能避免这个问题。
自动添加schema
如果我们知道请求的URL是HTTP或HTTPS协议,我们可以使用如下代码自动添加schema:
import requests
url = "www.baidu.com"
if not url.startswith("http"):
url = "http://" + url
response = requests.get(url)
这个代码会自动判断URL是否包含schema,如果没有就添加上。
使用绝对路径URL
如果我们使用的是绝对路径URL,就不需要指定schema了。比如,我们可以使用如下代码发送请求:
import requests
url = "/path/to/some/resource"
response = requests.get(url)
这个代码中的URL是绝对路径URL,就不需要指定schema了。
总结
无论是哪种解决方案,我们都需要保证URL格式正确,包含schema。这样,我们才能正常发送请求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Requests报”requests.exceptions.URLRequired: Invalid URL ‘{url}’: No schema supplied “的原因以及解决办法 - Python技术站