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

使用requests.get设置代理IP无效,请求爬虫工程师协助解决

解决requests设置代理后仍显示本机IP的问题

以下是排查和解决的核心要点:

  • 检查代理格式正确性:proxies字典的键必须包含协议(http/https),代理地址也需带完整协议前缀。示例:
    proxies = {
        "http": "http://192.168.1.1:8080",
        "https": "http://192.168.1.1:8080"
    }
    
    注意:HTTPS请求必须对应https键的代理配置,否则requests会忽略代理直接使用本机IP。
  • 验证代理可用性:先通过命令行或其他工具确认代理能正常转发请求,比如执行:
    curl -x http://192.168.1.1:8080 https://httpbin.org/ip
    
    若返回的不是代理IP,说明代理本身失效或被封禁,需更换有效代理。
  • 排除全局代理干扰:系统环境变量(如HTTP_PROXY/HTTPS_PROXY)的全局代理会优先生效,可在请求中临时禁用后再设置自定义代理:
    import os
    os.environ.pop('HTTP_PROXY', None)
    os.environ.pop('HTTPS_PROXY', None)
    response = requests.get("https://httpbin.org/ip", proxies=proxies)
    
  • 处理带认证的代理:若代理需用户名密码,需按http://username:password@ip:port格式配置:
    proxies = {
        "http": "http://user123:pass456@192.168.1.1:8080",
        "https": "http://user123:pass456@192.168.1.1:8080"
    }
    
  • 会话对象的代理绑定:若使用requests.Session(),需将代理绑定到会话实例,而非仅单个请求:
    session = requests.Session()
    session.proxies.update(proxies)
    response = session.get("https://httpbin.org/ip")
    

测试时推荐使用https://httpbin.org/ip接口,它会直接返回当前请求的源IP,便于快速验证代理是否生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 00:27:38