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

遍历Python代理字典实现每次请求更换代理的问题

解决Requests每次请求更换代理的问题

Hey Kyle, 我懂你的需求——每次发起GET/POST请求时自动切换不同代理,之前用单个代理没问题,但遍历代理池的时候卡壳了对吧?下面给你几个实用方案,一步步搞定:

第一步:整理你的代理池

首先得确保代理字典能方便迭代。假设你的代理字典是这样的(键是代理标识,值是Requests标准的代理配置):

# 示例代理字典
proxy_pool = {
    "proxy_usa": {"http": "http://192.168.1.1:8080", "https": "https://192.168.1.1:8080"},
    "proxy_uk": {"http": "http://10.0.0.2:3128", "https": "https://10.0.0.2:3128"},
    "proxy_jp": {"http": "http://172.16.0.3:8888", "https": "https://172.16.0.3:8888"}
}

我们把它转换成列表,方便后续遍历:

proxy_list = list(proxy_pool.values())

方案1:遍历代理池,逐个发起请求

如果你的请求数量和代理数量对应,或者想逐个用完代理池里的每个代理,直接循环遍历就行:

import requests

# 要请求的目标URL(单个或多个都可以)
target_urls = ["https://httpbin.org/ip", "https://example.com", "https://example.org"]

# 遍历代理和URL,每次请求用不同代理
for proxy, url in zip(proxy_list, target_urls):
    try:
        # 发起请求时指定当前代理
        response = requests.get(url, proxies=proxy, timeout=10)
        print(f✅ 使用代理 {proxy['http']} 请求 {url} 成功,状态码: {response.status_code}")
        # 这里可以处理响应内容,比如解析JSON
        # print(response.json())
    except requests.exceptions.RequestException as e:
        print(f❌ 使用代理 {proxy['http']} 请求 {url} 失败: {str(e)}")

方案2:循环复用代理池(无限切换)

如果你的请求次数比代理数量多,想循环重复使用代理池里的代理,可以用itertools.cycle创建一个无限迭代器:

import requests
from itertools import cycle

# 创建代理循环迭代器
proxy_cycler = cycle(proxy_list)

# 发起10次请求,每次自动切换下一个代理
for _ in range(10):
    current_proxy = next(proxy_cycler)
    try:
        resp = requests.get("https://httpbin.org/ip", proxies=current_proxy, timeout=8)
        print(f当前代理: {current_proxy['http']}, 响应返回的IP: {resp.json()['origin']}")
    except Exception as e:
        print(f代理 {current_proxy['http']} 失效,跳过: {str(e)}")

关键注意事项

  • 代理格式正确性:确保http和https的代理地址对应,有的代理只支持http协议,用于https请求会失败;如果代理需要认证,格式是http://username:password@proxy_ip:port。
  • 添加超时时间:一定要给请求加上timeout参数,避免某个失效代理卡住整个程序。
  • 异常处理:代理很容易失效,通过异常捕获可以跳过失效代理,保证程序继续运行。
  • 代理有效性校验:如果需要更严谨的方案,可以在使用前先校验代理是否可用(比如请求httpbin.org/ip看是否能正常返回)。

这样应该就能满足你每次请求更换代理的需求了,要是还有其他细节问题,随时说!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:05:32