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

Python requests库代理失效问题排查求助

代理请求仍暴露真实IP的排查与替代方案

核心排查点

  • 代理格式配置错误:requests的proxies字典必须明确指定协议,不能只写ip:port。正确格式:
    proxies = {
        'http': 'http://x.x.x.x:port',
        'https': 'http://x.x.x.x:port'  # 多数HTTP代理可兼容HTTPS请求
    }
    
    漏写协议头会导致请求直接走本地网络。
  • 代理匿名等级不足:普通透明代理会在请求头中携带X-Forwarded-For暴露真实IP,必须使用高匿代理,这类代理会完全替换请求源IP,不会泄露真实地址。
  • 代理已失效:免费代理存活周期极短,你抓取的代理可能在测试时可用,实际请求时已失效。建议加预验证逻辑:
    def validate_proxy(proxy_addr):
        test_url = 'http://httpbin.org/ip'
        try:
            resp = requests.get(test_url, proxies={'http': proxy_addr, 'https': proxy_addr}, timeout=5)
            # 替换成你的真实IP进行校验
            return resp.json()['origin'] != '111.222.333.444'
        except Exception:
            return False
    
  • 重定向绕过代理:部分检测网站会将HTTP请求重定向到HTTPS,若仅配置了HTTP代理,HTTPS请求会走本地网络。务必同时配置HTTP和HTTPS代理。
  • 代码逻辑疏漏:检查是否存在分支逻辑未传入proxies参数,或变量名拼写错误(比如把proxies写成proxy)。

替代实现方案

如果requests代理始终无法解决问题,可以尝试以下工具:

  • curl-cffi:模拟curl的底层逻辑,对代理兼容性更好,支持各类代理协议:
    from curl_cffi import requests
    resp = requests.get('http://httpbin.org/ip', proxies={'https': 'http://x.x.x.x:port'})
    print(resp.json())
    
  • Playwright:通过真实浏览器发送请求,代理配置更贴近用户行为,不易被检测绕过:
    from playwright.sync_api import sync_playwright
    with sync_playwright() as p:
        browser = p.chromium.launch(proxy={"server": "http://x.x.x.x:port"})
        page = browser.new_page()
        page.goto('http://httpbin.org/ip')
        print(page.text_content('pre'))
        browser.close()
    
  • aiohttp:异步HTTP库,底层实现与requests不同,可能解决部分兼容性问题:
    import aiohttp
    import asyncio
    async def fetch_with_proxy():
        async with aiohttp.ClientSession() as session:
            async with session.get('http://httpbin.org/ip', proxy='http://x.x.x.x:port') as resp:
                print(await resp.json())
    asyncio.run(fetch_with_proxy())
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:18:27