Requests报”requests.exceptions.MissingSchema: Invalid URL {url}: No schema supplied. Perhaps you meant http://{url}? “的原因以及解决办法

  • Post category:Python

该报错是因为请求的URL缺少协议头(如http、https等)导致的。

解决办法如下:

1.检查URL格式是否正确,是否缺少”http://”或”https://”等协议头。

2.使用try…except语句捕获异常,并在except语句中输出有用的错误信息。

3.在代码中添加协议头。可以使用字符串拼接的方式在URL前面添加协议头,例如:

import requests

url = "example.com"   # 缺少协议头
try:
    response = requests.get("http://" + url)
    print(response.status_code)
except requests.exceptions.RequestException as e:
    print(e)

4.使用Python的urlparse库解析URL,判断是否有协议头。如果没有则在代码中添加协议头,例如:

import requests
from urllib.parse import urlparse

url = "example.com"   # 缺少协议头

parsed_url = urlparse(url)
if not parsed_url.scheme:
    url = "http://" + url

try:
    response = requests.get(url)
    print(response.status_code)
except requests.exceptions.RequestException as e:
    print(e)

以上就是Requests报”requests.exceptions.MissingSchema: Invalid URL {url}: No schema supplied. Perhaps you meant http://{url}?”的原因以及解决办法的完整攻略。