
根据教程在代码中设置代理(我的梯子 http 端口是 8001)
proxies = {'https': 'https://127.0.0.1:8001', 'http': 'http://127.0.0.1:8001'} 然后通过 requests 包进行网络请求
print(requests.get(url=url, headers=headers, proxies=proxies).text) // 报错 结果报错
Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)')) 但是取消设置代理后通过下面的方式又可以正常请求到资源
print(requests.get(url=url, headers=headers).text) // 能获取到 html 资源 这是什么原因呢? 如果我用 scrapy 框架的话,那应该是在中间件中配置代理还是不配置呢
1 Windy418 OP 还发现一个问题就是如果程序中代理用 socks5 协议是可以返回数据的 ``` proxies = {'socks5': 'https://127.0.0.1:8001', 'socks5': 'http://127.0.0.1:8001'} ``` 但是用 http 的不行 |
2 ysc3839 2022 年 3 月 18 日 via Android 你的代理服务器不支持用 https 协议连接吧?你写 https://代表用 https 协议连接代理服务器,这里应该写 http:// 这个错误信息大概是发送了 https 数据给了 http 服务器,然后被断开连接了。 |
3 Windy418 OP @ysc3839 我的代理服务器里默认有三个端口,一个 Socks5 端口( 1081 ),一个 HTTP 端口( 8001 ),一个 PAC 服务器端口( 7777 ) |
4 linuxyz 2022 年 3 月 19 日 `proxies = {'https': 'http://127.0.0.1:8001', 'http': 'http://127.0.0.1:8001'}` 你把代理都改成 `http://127.0.0.1:8001` 或者 `proxy: 'socks5://127.0.0.1:1081'` or `proxy: 'http://127.0.0.1:8001'` |