起因

问题出现在windows电脑上,我用mac执行程序的时候并不会报错,但是如果在windows上的时候,大部分windows电脑会报错,而有些版本低的windows电脑又不会报错。

异常栈信息

HTTPSConnectionPool, Cannot connect to proxy, no such file or directory

如果你也遇到上面类似的问题可以参考下面的解决办法:

问题原因

现在 urllib3 要支持 https 代理了,那么既然配置代理是 https 就尝试用 https 的方式去连接,但是由于代理服务器其实只支持 http,所以没法处理请求,ssl 握手阶段就出错了。

以前的 urllib3 其实并不支持 https 代理,也就是说代理服务器的地址虽然大家配置的是 https,但是一直都是悄无声息地就按照 http 连接的,刚好代理服务器确实也只支持 http,所以皆大欢喜。

也就相当于是你的代理一直都是用的http,而后来urllib3 支持起https后,反而代理服务器无法正常使用,所以我们有两种解决办法:

如何解决

方案1 降低urllib3 版本:

pip install urllib3==1.25.11

方案2 重新设置代理

proxy = {
    "http": "http://127.0.0.1:7890",
    "https": "http://127.0.0.1:7890"
}

params = {'wd': '爬虫'}
response = requests.get('https://www.baidu.com/s', params=params, headers=headers, proxies=proxy)

proxy_host和proxy_port可以去系统设置里的代理看。
在这里插入图片描述

参考文章:

记录 python request ProxyError报错
Python request代理错误提示“HTTPSConnectionPool, Cannot connect to proxy, no such file or directory”

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部