在使用 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” 错误的解决方法,希望对你有所帮助。