Python 代理 IP 轮换:3 种常用方法

代理的本质是“把请求的出口 IP 从你本机换成可控的中转出口”。所谓“轮换”,就是让多次请求尽量不要一直用同一个出口 IP。 本文将讲解常见的代理轮换实现方式,并展示如何基于 kookeey 的动态住宅代理服务,快速完成接入配置与实战应用(含可直接运行的代码示例)。

想省掉自己维护代理池的麻烦?

直接用 kookeey 的网关代理:拿到 host/port/账号密码后,粘贴代码就能发起请求。

先搞明白:轮换其实分两类

很多人照抄“轮换代理”代码却跑不通,原因是:你买的代理往往不是“给你一堆 IP 让你自己换”,而是“给你一个固定网关,后台自动分配出口”。 两种都叫轮换,但实现方式不同:

① 客户端轮换(自备代理列表)

你手里有多个代理 URL(A/B/C),每个请求随机或按顺序挑一个。

  • 优点:完全可控,可做加权、淘汰坏代理
  • 缺点:需要你维护代理池(可用率、健康检查、补充/淘汰)

② 网关轮换(服务商托管池)

你只连一个 host:port,同一个入口由服务商在后台分配不同出口 IP(或按会话保持)。

  • 优点:少维护,购买后更容易“直接能用”
  • 注意:是否每次都换 IP 取决于你的会话/轮换策略设置

什么时候值得上代理?

  • 目标站对单 IP 频率限制严格(常见 429/验证码/403)
  • 你需要多地区访问/验证地区内容
  • 你要并发采集,希望把请求分散到多个出口

小提醒:代理不是万能钥匙。稳定性通常来自:超时设置、限并发、重试策略、会话策略,而不只是“换 IP”。

使用 kookeey 动态住宅代理实现自动轮换

进入 kookeey 官网,创建账号并完成登录。

  1. 选择套餐并购买:按你的业务选择动态住宅
Python 代理 IP 轮换:3 种常用方法
  • 在控制台拿到接入信息:找到你的代理网关 HostPort用户名密码(或白名单鉴权)。
  • 先跑连通性测试:用 https://httpbin.org/ip 验证请求是否走代理、出口 IP 是否符合预期。

需要记住四个参数:host / port / username / password。 后面所有代码示例都围绕它们展开。

建议先把控制台的 host/port/账号密码复制出来,再回来粘贴到下面的代码里。

kookeey 全球代理IP点击按钮免费试用

最小化连通性测试(建议买完第一件事就跑)

import requests

proxy_host = "http-dynamic.kookeey.com"   # 控制台的 host

proxy_port = "8888"                      # 控制台的 port

username = "your_username"               # 你的用户名

password = "your_password"               # 你的密码

gateway = f"http://{username}:{password}@{proxy_host}:{proxy_port}"

proxies = {"http": gateway, "https": gateway}

r = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)

r.raise_for_status()

print(r.text)

如果返回的 IP 不是你本机公网 IP,说明代理链路已打通。 如果 IP 没变化,可能是:你启用了会话保持(sticky),或请求复用导致短时间观察到相同出口。

三种基本写法:requests / aiohttp / Scrapy(复制即用)

方法 1:requests(最简单,适合单请求或小并发)

import requests

proxy_host = "http-dynamic.kookeey.com"

proxy_port = "8888"

username = "your_username"

password = "your_password"

gateway = f"http://{username}:{password}@{proxy_host}:{proxy_port}"

proxies = {"http": gateway, "https": gateway}

try:

    r = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)

    r.raise_for_status()

    print(r.json())

except requests.exceptions.RequestException as e:

    print("request failed:", e)

说明:网关轮换模式下,不需要你维护一堆代理列表;所有请求都走同一个网关入口即可。

方法 2:aiohttp(异步并发,适合更高吞吐)

import aiohttp

import asyncio

proxy_host = "http-dynamic.kookeey.com"

proxy_port = "8888"

username = "your_username"

password = "your_password"

proxy = f"http://{username}:{password}@{proxy_host}:{proxy_port}"

async def fetch(session, i):

    try:

        async with session.get("https://httpbin.org/ip", proxy=proxy) as resp:

            text = await resp.text()

            print(f"[{i}] status={resp.status} body={text}")

    except Exception as e:

        print(f"[{i}] failed: {e}")

async def main():

    timeout = aiohttp.ClientTimeout(total=15, connect=10, sock_connect=10, sock_read=10)

    connector = aiohttp.TCPConnector(limit=50)  # 限制连接池,避免无限并发

    async with aiohttp.ClientSession(timeout=timeout, connector=connector) as session:

        await asyncio.gather(*[fetch(session, i) for i in range(1, 6)])

if __name__ == "__main__":

    asyncio.run(main())

并发不等于越大越好。代理再好也扛不住无脑拉满并发:记得设置超时 + 连接池上限。

方法 3:Scrapy(通过中间件统一设置代理)

适合爬虫工程化:统一在 Downloader Middleware 注入 proxy,遇到异常/常见状态码可触发重试。

# middlewares.py

import random

from scrapy.exceptions import NotConfigured

class RotateProxyMiddleware:

    def __init__(self, proxy_url_list):

        self.proxy_url_list = proxy_url_list

    @classmethod

    def from_crawler(cls, crawler):

        proxy_url_list = crawler.settings.getlist("PROXY_URL_LIST")

        if not proxy_url_list:

            raise NotConfigured("PROXY_URL_LIST is empty")

        return cls(proxy_url_list)

    def _set_proxy(self, request):

        request.meta["proxy"] = random.choice(self.proxy_url_list)

    def process_request(self, request, spider):

        if not request.meta.get("proxy"):

            self._set_proxy(request)

    def process_exception(self, request, exception, spider):

        self._set_proxy(request)

        request.dont_filter = True

        return request

# settings.py

proxy_host = "http-dynamic.kookeey.com"

proxy_port = "8888"

username = "your_username"

password = "your_password"

PROXY_URL_LIST = [

    f"http://{username}:{password}@{proxy_host}:{proxy_port}",

]

DOWNLOADER_MIDDLEWARES = {

    "yourproject.middlewares.RotateProxyMiddleware": 543,

    "scrapy.downloadermiddlewares.retry.RetryMiddleware": 550,

}

RETRY_ENABLED = True

RETRY_TIMES = 3

DOWNLOAD_TIMEOUT = 20

更稳的 5 个小习惯(比“换 IP”更重要)

  • 设置超时:connect/read/total,避免坏链路把程序拖死。
  • 限并发:aiohttp 用 connector/信号量;Scrapy 调并发与下载延迟。
  • 重试要有策略:对 429/5xx/超时做重试,必要时更换会话或重新发起连接。
  • 观察“是否轮换”要用正确方式:多次请求 httpbin,结合你在控制台选择的轮换/会话策略判断。
  • 合规与风控:遵守目标站条款与当地法律;代理是工具,不是免责。

常见问题(快速排查)

  • 407 Proxy Authentication Required:账号/密码错误,或你选择了白名单鉴权但没把本机 IP 加进去。
  • 一直超时:代理不可用、网络不通,或并发过高导致连接耗尽。
  • 出口 IP 不变:可能启用了会话保持(sticky),或短时间连接复用导致看起来没变。

最后一步:把控制台参数填进代码里,先跑通 httpbin

跑通之后再上真实目标站,并逐步加限并发与重试策略。

点击试用领取新人流量礼包

Python 代理 IP 轮换:3 种常用方法

说明:本文代码示例使用的是“网关轮换”思路(买完直接用)。如果你用的是“自备代理列表”,只需要把 gateway 换成你的多个代理并在客户端做随机/顺序选择即可。

免费获取 kookeey 新用户福利 🎁
200MB 动态流量
198元 优惠大礼包
100%独享IP ISP 支持独享端口 / API 调用
Python 代理 IP 轮换:3 种常用方法

本文来自网络投稿,不代表kookeey立场,如有问题请联系我们

(2)
kookeeykookeey
上一篇 2026-01-04 12:07
下一篇 2026-01-07 18:30

相关推荐

  • 做亚马逊需要IP代理吗?需要纯净度高的吗?

    做亚马逊跨境电商的老玩家都知道,代理IP的作用不容小觑。通过代理IP,跨境电商卖家可以进行深入的市场研究,获取关键的数据分析,助力业务决策。让卖家能够安全轻松管理不同地区的账户,轻松防关联,无缝对接多元市场。 当然,也需要纯净度高、质量高的,毕竟店铺安全关乎销售额!现在有专注于跨境电商的纯净代理kookeey,就适合亚马逊运营,下面我们阐述一下他们的优势。 …

    2023-12-07
  • 海外代理IP的七大用途,这些业务都在用

    说到海外代理IP,很多人可能会觉得云里雾里,这家伙很高深吗?还是很有钱?哈哈,其实它只是一个简单的技术工具,却有着千千万万的用途。今天,让我们走进海外代理IP的奇妙世界,解锁它广阔的应用场景! 一、访问受地域限制的网站或平台 许多平台会根据访问者的IP判断其所在区域,从而决定是否允许访问或限制内容显示。例如某些国家的新闻网站、电商平台或视频服务,对特定地区的…

    2025-04-03
  • 利用代理IP提升广告验证效率:Kookeey与广告验证的新视角

    在数字化营销领域,广告验证是保证广告投资回报率和防范欺诈行为的重要环节。随着广告欺诈手段的日益复杂,如何有效验证广告的真实性和效果成为广告主面临的一大挑战。在此背景下,代理IP以其独特的优势在广告验证中扮演着关键角色。本文将探讨如何利用kookeey等可靠的代理IP服务商来提升广告验证的准确性和效果。 一、广告验证的重要性 广告验证是确保广告投放效果真实有效…

    2024-08-12
  • 代理IP测评:原理、对比与总结 | 选择高质量代理IP的终极指南

    代理IP是网络爬虫、数据采集以及匿名访问等领域中的重要工具。然而,由于代理IP的质量参差不齐,我们需要进行测评来选择高质量、稳定可靠的代理IP。本文将介绍代理IP测评的原理,并对5种常见的代理IP进行对比,最后给出测评总结。 代理IP测评的原理 代理IP测评的原理是通过发送请求到代理IP地址,并记录返回的结果来评估代理IP的性能。首先,我们会根据需求选择一系…

    2024-01-29
  • 代理IP是什么?如何选择?使用指纹浏览器为什么需要代理

    随着跨境电商行业竞争的加剧,多账号运营成为了一种普遍的策略,旨在最大化市场覆盖面和用户参与度。但是,这种策略带来了一个不容忽视的问题:如何保护您的在线隐私和安全性?这就是代理IP发挥作用的地方。代理IP是一种技术,可以让您在互联网上的活动匿名化,通过更换您的IP地址,来隐藏您的实际地理位置和网络身份。这种匿名性不仅是对抗监控和潜在封禁的利器,而且是进行有效多…

    2024-02-27