Python中requests库在Mac版上代理突然无法使用怎么办?
# 以前用这个方法可以
proxy = {"http":"socks5://127.0.0.1:1080","https":"socks5://127.0.0.1:1080"}
现在 PC 版用这个可以
proxy = {“http”:“127.0.0.1:1080”,“https”:“127.0.0.1:1080”}
MAC 版两种都不行(以前第一种行)
不知道啥时候发生的这个情况,反正搞了半天没搞成。
两个电脑装的包都一样的。requests[socks] 和 pysocks 都装了且升级了。
代理用的 ss,PC 版 4.1.3.1,MAC 版 2.6.3,浏览器访问都正常通过。
- PC。浏览器设置 http 或者 socks5 都能通过,python 里只能不加 socks5,加了通不过。
- MAC。浏览器设置 http 通不过,socks5 可以通过。python 里都不行。
是不是我还漏了啥了?
Python中requests库在Mac版上代理突然无法使用怎么办?
我遇到过类似问题,Mac上requests代理失效通常有几个常见原因:
-
环境变量冲突:检查终端里
echo $HTTP_PROXY和echo $HTTPS_PROXY的输出,有时候系统代理设置会干扰代码中的代理配置。 -
代理格式问题:确保代理地址格式正确。http代理和https代理要分开设置:
import requests
proxies = {
'http': 'http://127.0.0.1:7890',
'https': 'http://127.0.0.1:7890' # 注意这里还是http://
}
# 或者简写
proxies = {'http': 'http://127.0.0.1:7890', 'https': 'http://127.0.0.1:7890'}
response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=10)
print(response.json())
- 证书验证问题:如果代理使用自签名证书,需要关闭验证(仅限测试环境):
response = requests.get('https://example.com', proxies=proxies, verify=False)
-
代理服务状态:先用
curl -x http://127.0.0.1:7890 https://httpbin.org/ip测试代理本身是否正常。 -
Python版本兼容:检查requests库版本,老版本可能有bug:
pip install --upgrade requests
- 网络权限:特别是升级macOS后,确保终端有网络访问权限(系统设置-隐私与安全性-防火墙)。
建议先写个最小测试代码确认问题在哪。
测试 windows py3.6 requests socks5 (无认证) 没问题,你那边报什么错
下载一个软件不是很方便吗?非要搞配置文件
我 win 的 http 没问题,socks 不晓得为啥不行,mac 上一团问题,不知道是系统更新还是咋的。现在换了 ss-ng 在试。
具体不理解,以前作 gmail 发邮件的程序时我是这样写的,给你参考,python3
from httplib2 import socks
import socket
socket.socket = socks.socksocket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,“127.0.0.1”,1080)


