报错原因:
报错信息中的”requests.exceptions.InvalidURL: Invalid URL {url}: No schema supplied”的原因是因为请求的链接缺少了协议(http/https)的声明,例如”www.example.com”,应该修改成”http://www.example.com” 或者 “https://www.example.com”。
解决办法:
方式一:添加协议声明
如果你确定请求链接正确,解决办法就是在请求链接(即url)前加上协议声明。例如:
import requests
response = requests.get("http://www.example.com")
或
import requests
response = requests.get("https://www.example.com")
方式二:使用urljoin处理链接
如果有之前没有协议声明的链接需要处理,可以使用urljoin方法实现链接处理。例如:
import requests
from urllib.parse import urljoin
base_url = "https://www.example.com/"
url = "about-us/contact" # 缺少协议声明的链接
absolute_url = urljoin(base_url, url) # 处理链接
response = requests.get(absolute_url) # 请求链接
以上是处理”http://www.example.com” 或者 “https://www.example.com” 链接和处理缺少协议声明的链接的两种方法,在实际使用中需要根据具体情况进行选择。