You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3 Requests未使用传入代理:请求仍显示本地IP问题求助

解决Python Requests代理未生效的问题

我之前调试代理的时候也踩过类似的坑,你的代码逻辑看起来没问题,但没生效大概率是这几个细节没处理好:

1. 代理地址必须包含完整协议前缀

Requests要求代理参数里的地址必须带协议前缀(比如http://或https://),很多人容易漏掉这一点。你现在的x.x.x.x:xxxx缺少协议标识,Requests可能无法正确识别代理类型,直接走了本地网络。

修改后的代理配置应该是这样:

proxies = {'http': 'http://x.x.x.x:xxxx', 'https': 'http://x.x.x.x:xxxx'}

(顺便把https条目也加上,万一后续请求HTTPS站点也能用上)

2. 免费代理可能已经失效

sslproxies.org上的免费匿名代理存活时间通常很短,你拿到的代理可能已经被目标站点封禁或者无法正常连接了。建议先手动验证代理的可用性:

  • 用curl测试:curl -x http://x.x.x.x:xxxx http://www.lagado.com/proxy-test
  • 如果curl也返回本地IP,说明代理本身就是无效的,换一个新的代理试试。

3. 排除系统默认代理的干扰

有时候系统的全局代理设置会覆盖Requests的自定义代理配置,导致你的代理不生效。可以通过创建Session并禁用环境变量代理来解决:

import requests

url = 'http://www.lagado.com/proxy-test'
proxies = {'http': 'http://x.x.x.x:xxxx', 'https': 'http://x.x.x.x:xxxx'}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'}

# 创建Session并禁用系统代理干扰
session = requests.Session()
session.trust_env = False  # 忽略系统环境变量中的代理设置

res = session.get(url, proxies=proxies, headers=headers)
print(res.text)

4. 检查代理是否需要认证

有些标注为“匿名代理”的服务其实还是需要用户名密码认证的,如果代理要求认证,你需要把凭证加到代理地址里:

proxies = {'http': 'http://username:password@x.x.x.x:xxxx'}

按照上面的步骤排查,应该就能解决代理不生效的问题了。

内容的提问来源于stack exchange,提问作者chuck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:48:02