python3.7.6版本,使用request库设置代理ip,可能会遇到urllib3.exceptions.ProxySchemeUnknown: Not supported proxy scheme None错误,这是因为底层修改了url解析模式,使得proxy代理解析失败导致。
报错源码:
poolmanager.py
if proxy.scheme not in ("http", "https"):
raise ProxySchemeUnknown(proxy.scheme)
exceptions.py
class ProxySchemeUnknown(AssertionError, ValueError):
"ProxyManager does not support the supplied scheme"
# TODO(t-8ch): Stop inheriting from AssertionError in v2.0.
def __init__(self, scheme):
message = "Not supported proxy scheme %s" % scheme
super(ProxySchemeUnknown, self).__init__(message)
解决方案是:需要将代理写成http://+ip+port这种形式,不能去掉前面的http://
代理写法如下:
proxies = {
"http":"http://127.0.0.1:8080",
"https":"https://127.0.0.1:8080",
}
request.get(url,proxies=proxies)