Requests报”requests.exceptions.InvalidProxyURL: Invalid proxy URL {url} “的原因以及解决办法

  • Post category:Python

在使用 Requests 库时,可能会遇到 “requests.exceptions.InvalidProxyURL: Invalid proxy URL {url} ” 错误,这时候需要对其进行排查。本文将详细解释其原因以及可能的解决办法。

原因

该错误通常表示你提供的代理 URL 格式不正确。具体原因如下:

代理 URL 格式错误

当你创建一个代理时,你需要提供一个代理 URL。这个 URL 应该是一个字符串类型,用于描述代理的地址和端口。比如:

http://127.0.0.1:8080

但如果你提供的字符串格式不正确,比如直接传入一个字典或一个空字符串,那么就会报 “requests.exceptions.InvalidProxyURL” 错误。

使用 URL scheme 不正确

在提供代理 URL 时,你需要指定 URL scheme。比如使用 HTTP 协议:

http://127.0.0.1:8080

或者使用 HTTPS 协议:

https://127.0.0.1:8080

如果你的 URL scheme 不正确或者未指定,则会报 “requests.exceptions.InvalidProxyURL” 错误。

解决办法

针对以上两个原因,我们提供以下解决办法:

检查代理 URL 格式

在使用代理时,你需要明确知道代理 URL 的正确格式,避免传入错误的格式。我们建议使用字符串类型传入代理 URL。

proxies = {
  'http': 'http://127.0.0.1:8080',
  'https': 'https://127.0.0.1:8080'
}

注意,这里需要指定协议类型,比如 http 或 https,否则也会导致 “requests.exceptions.InvalidProxyURL” 错误。这也是一种常见的错误。

检查 URL scheme

在创建代理时,你需要确保 URL scheme 的正确性。URL scheme 代表使用的协议类型,比如 http、https 或 ftp。正确的示例:

proxies = {
  'http': 'http://127.0.0.1:8080',
  'https': 'https://127.0.0.1:8080'
}

最后,你可以尝试用正确的 URL 格式和 URL scheme 重新运行你的代码。如果问题仍然存在,那么你需要进一步分析原因。

以上是针对 “requests.exceptions.InvalidProxyURL” 错误的解决方法,希望对你有所帮助。