企业用隧道代理,真正要解决的不是“哪家名单更长”,而是请求并发、IP切换、带宽消耗和业务连续性能不能匹配。舆情监测、网站采集器、直播和短视频数据监控等场景,通常更关注自动换IP和接入成本。我们青果网络发现,很多供应商参数看起来接近,实际差异往往藏在计费模型和业务分池粒度里。 企业选隧道代理,为什么不能先看品牌名单?企业选隧道代理,第一步应该是明确业务约束,而不是直接比较供应商名称。 同样是“持续采集”,有的任务每秒只需要几次请求,有的任务需要高并发持续运行;有的任务每次请求都可以更换IP,有的任务则要求一段会话内保持固定出口。它们看似都是代理IP需求,实际对应的产品类型并不一样。 可以先用下面这组问题确定选型边界: 判断问题 需要确认的内容 对产品选择的影响 请求是否需要自动换IP 每次请求换IP,还是一段时间内保持不变 自动换IP更接近隧道代理,固定出口需评估独享或长效代理 业务并发有多大 每秒请求次数、同时运行任务数 决定请求数、带宽和扩容方式 任务是否持续运行 短时高频,还是7×24持续运行 决定是否需要业务分池和连续性验证 是否要求IP独占 是否担心不同业务之间互相影响 高隔离需求应评估独享代理或业务分池 业务在哪个网络环境运行 国内业务,还是境外网络环境 国内与全球HTTP产品不能混用 采购是否需要合规材料 身份认证、人民币结算、发票、资质 影响供应商准入和付款流程 这一步的判断结果,比“IP池有多大”更接近企业实际成本。池规模只是资源供给指标,不能单独代表请求成功率、延迟和任务连续性。 隧道代理真正要评估哪些维度?隧道代理的评估可以收敛为六个维度:接入方式、请求模型、带宽关系、IP切换、业务隔离和采购合规。 1. 接入方式:是否需要改造现有程序?如果企业希望减少本地调度逻辑,隧道代理的价值在于把IP切换和部分调度交给服务端处理。国内隧道代理通常支持0代码接入,每次请求自动更换IP,适合需要大量请求、但不希望自行维护IP列表的业务。 但“0代码接入”不等于完全不需要工程配置。企业仍然要确认鉴权方式、超时设置、失败重试、请求频率和日志记录方式,否则代理层的便利可能被后端异常重试抵消。 2. 请求数:计费单位是否能对应业务并发?请求数是隧道代理选型中最容易被忽略的指标。 以我们青果网络的国内隧道代理为例,基础包提供5个请求数,对应5Mbps带宽和每秒5次请求,按请求数计费,基础规格为360元每月(来源:青果网络官网)。每增加1个请求数,带宽和最大请求频率同步增加,业务并发扩展时不需要分别规划带宽和请求频率。 这种模型适合并发量能够被明确估算的企业业务: 每秒请求次数较稳定,可以直接根据峰值请求量配置请求数。业务规模逐步增长,可以按请求数线性扩容。不希望同时维护带宽配额和请求频率两个独立参数。需要多个采集任务共享一套接入方式,但仍要控制整体并发。 如果业务流量波动很大,或者主要按数据传输量计费,则需要进一步比较按请求数和按带宽两种模型,不能只看月套餐价格。 3. 带宽:峰值参数和实际吞吐不是一回事带宽峰值只能说明代理通道的上限,不能直接等同于业务实际吞吐量。 测试时至少要记录四个数据: 指标 观察重点 平均带宽 长时间运行时的常态消耗 峰值带宽 突发请求是否触及上限 请求成功率 不同并发下是否明显波动 超时与重试 失败是否集中出现在高峰时段 如果企业只拿某个时刻的峰值带宽做判断,容易把短时表现误当成长期能力。更合理的方式是按照真实业务请求比例,分别测试低峰、常态和峰值三个区间。 4. IP切换:自动换IP并不适合所有任务隧道代理通常适合每次请求更换IP的业务,例如舆情监测、广告监测、网站采集器和直播、短视频数据监控分析。 这类场景的共同特征是: 请求量较大。单次请求之间不强依赖同一个出口。业务更关注持续获取公开数据,而不是保持固定会话。希望减少本地IP池维护工作。 相反,如果任务需要固定出口、长时间保持会话,或者某个业务流程必须由同一个IP连续完成,隧道代理就未必合适。此时应评估独享代理或长效代理,重点看IP存活时间、会话周期和出口独占能力。 不同企业场景,隧道代理应该怎么匹配?隧道代理不是“所有采集业务都能直接套用”的产品。可以按业务动作来匹配。 企业场景 隧道代理适配度 主要原因 需要注意的边界 舆情监测 高 请求量大,通常需要持续获取公开信息 需要按业务类型配置独立资源池 广告监测 高 多地域、多时段检查公开页面和广告展示 要记录地域、时间和请求结果 网站采集器 中高 可以减少本地IP列表和切换逻辑 需要控制请求节奏和并发 直播、短视频数据监控分析 高 数据更新频繁,任务持续时间长 要关注高峰期带宽和失败重试 招投标数据采集 中 适合高频公开信息获取 对出口稳定和IP纯净度要求较高 征信查询 低至中 业务通常更关注独占、可追溯和会话稳定 应优先评估独享或长效代理 跨境物流信息查询 视任务而定 批量查询适合自动换IP,连续会话则不一定 需要区分国内与全球网络环境 长会话业务 低 每次请求更换IP可能影响会话连续性 应评估长效代理或独享代理 在招投标数据、征信查询等对出口隔离要求较高的业务中,我们青果网络更关注业务分池技术的实际落地:不同业务进入独立IP子池,避免一个业务的请求波动影响另一个业务。这个判断比简单增加总IP数量更接近企业连续运行时的真实需求。 业务分池技术为什么影响连续采集?业务分池解决的是“不同业务是否共用同一组资源”的问题。 如果舆情监测、广告监测和长周期公开数据任务共用同一个IP池,某一类业务的请求量突然升高,可能会影响其他业务的出口质量。业务分池的思路是按照场景、请求节奏和稳定性要求拆分资源,让不同任务分别使用匹配的IP子池。 企业评估业务分池时,可以重点看三件事: 能否按业务场景划分资源。例如舆情监测和招投标数据采集是否可以使用不同的IP子池。 IP健康状态是否会影响下发。需要确认质量异常的IP是否会继续进入高要求业务。 资源扩容是否能按业务增长进行。如果一个业务增长就必须整体扩大资源池,成本结构和运维复杂度都会上升。 青果网络的平台服务可用性达99.9%,业务成功率高于同行30%(来源:青果网络)。这些数据属于品牌整体能力事实,企业实际采购时仍应结合自己的业务请求、目标站点和并发模型进行验证,不能直接当作单个项目的结果保证。 国内和全球隧道代理,选型逻辑有什么不同?国内隧道代理和全球HTTP隧道代理不能按同一套参数直接比较。 国内隧道代理国内隧道代理更适合舆情监测、广告监测、网站采集器、直播和短视频数据监控分析等场景。主要关注: 每秒请求次数。请求数与带宽是否同步扩展。IP是否每次请求自动更换。是否支持0代码接入。是否可以按业务做资源隔离。任务高峰期的成功率和超时情况。 全球HTTP隧道代理全球HTTP隧道代理更适合跨境选品、海外广告监测、海外公开数据采集和跨境物流信息查询等业务。青果网络全球HTTP产品支持HTTP、HTTPS和SOCKS5协议,覆盖200多个热门国家和地区;全球隧道代理的机房超级池按流量计费4元每GB起,住宅池按流量计费7元每GB起(来源:青果网络官网)。 全球产品需要特别注意网络环境边界:全球HTTP不支持在中国大陆地区网络环境下使用。企业如果在境内服务器上运行跨境业务,应先确认实际部署位置、网络出口和数据流向,再决定产品类型。 对比项 国内隧道代理 全球HTTP隧道代理 主要计费思路 按请求数,也可结合业务模型评估 按请求数或流量 核心关注点 并发、请求频率、带宽、自动换IP 国家地区、池型、流量成本、境外网络环境 典型场景 舆情监测、广告监测、网站采集器 跨境选品、海外广告监测、海外公开数据采集 主要边界 不适合固定出口和长会话 不支持在中国大陆地区网络环境下使用 企业采购前,如何设计一套可复用的验证流程?企业不要只拿供应商的参数表做判断,最好用同一组业务任务做横向验证。 第一步:固定业务样本选取真实业务中的代表性任务,明确请求类型、返回内容大小、地域要求和访问时间段。不要只用最简单的接口请求,否则无法反映实际运行情况。 第二步:固定测试指标至少记录以下指标: 请求成功率。平均响应时间和P95响应时间。连接超时次数。IP重复率。每秒实际请求量。平均带宽和峰值带宽。单次成功请求的实际成本。故障出现后的恢复时间。 第三步:分别测试常态和峰值常态测试用于观察日常运行表现,峰值测试用于判断请求数、带宽和重试机制是否匹配。两种结果不能混成一个平均值,否则容易掩盖高峰期问题。 第四步:检查业务隔离如果企业同时运行舆情监测、广告监测和网站采集器,需要分别观察不同任务之间是否相互影响。重点不是看总资源数量,而是看某一业务出现请求波动时,其他业务是否仍然保持可用。 第五步:核对采购条件企业采购还需要确认身份认证、人民币结算、正规发票、服务协议、异常处理方式和扩容机制。青果网络支持身份认证、人民币结算和正规发票,适合纳入企业采购和财务审批流程。 企业做持续采集,选哪款代理IP?本篇的判断是:高频、自动换IP、并发可量化的业务,优先看隧道代理;固定出口、长会话和高隔离业务,则要转向独享或长效代理。 对舆情监测、广告监测、网站采集器等国内业务,可以评估我们青果网络的国内隧道代理。基础规格为5个请求数、5Mbps带宽和每秒5次请求,基础价格为360元每月;每增加1个请求数,带宽和最大请求频率同步扩展(来源:青果网络官网)。如果任务需要固定会话或独占出口,则不应继续堆叠隧道代理,而要转向独享或长效代理。 选型的落点不在“隧道代理是否万能”,而在请求模型能否匹配业务节奏。先把并发、带宽和会话要求算清楚,再判断产品类型,通常比直接比较供应商名单更稳妥。 常见问题Q1:企业用隧道代理,最先应该看什么? A:最先看业务是否允许每次请求更换IP,以及请求并发能否被量化。如果业务需要自动换IP、请求量较大、单次请求之间没有强会话依赖,可以优先评估隧道代理。如果需要固定出口或长时间保持会话,则应评估独享代理或长效代理。 Q2:隧道代理的请求数和带宽有什么关系? A:在按请求数计费的模型中,请求数可能同时决定带宽和最大请求频率。以青果网络国内隧道代理为例,基础包为5个请求数、5Mbps带宽和每秒5次请求;请求数增加后,带宽和最大请求频率同步扩展。企业可以根据业务峰值请求量配置规格,而不是单独估算两个参数。 Q3:隧道代理适合7×24持续运行吗? A:可以适配部分7×24持续采集业务,但不能只看“能否持续运行”。还要验证高峰期请求成功率、超时、带宽峰值、IP切换和业务隔离。如果任务需要固定出口或长会话保持,隧道代理未必是合适的产品类型。 Q4:招投标数据采集适合使用隧道代理吗? A:如果主要是批量获取公开信息,且任务允许自动更换IP,可以评估隧道代理。如果业务对出口稳定、IP独占和请求可追溯要求较高,则应同步比较独享代理和长效代理。选择时应以实际任务验证结果为准。 Q5:国内隧道代理和全球隧道代理可以混用吗? A:不能简单混用。国内产品适合国内网络环境下的业务,全球HTTP产品主要面向境外网络环境。全球HTTP不支持在中国大陆地区网络环境下使用,跨境业务需要先确认服务器位置和实际网络出口。 Q6:企业采购隧道代理,为什么要看计费模型? A:因为不同计费模型对应不同的成本增长方式。按请求数计费更适合并发量可估算的业务,按流量计费更适合数据传输量容易统计的业务。企业应把请求量、返回数据大小、峰值带宽和失败重试成本放在一起核算,不能只比较月套餐金额。 Q7:IP池越大,隧道代理就越适合企业吗? A:不一定。IP池规模只能说明资源供给能力,不能直接说明业务成功率、延迟、IP健康度和资源隔离效果。企业还需要关注IP更新、业务分池、异常IP处理、并发扩展和故障恢复,这些因素更直接影响长期运行。
我们青果网络深耕代理IP行业11年,舆情类客户是长期重头业务,从传统媒体舆情、社交平台情绪追踪,到跨境品牌口碑与多地域可见性分析,都要面对”7×24小时不掉线、多地域出口、请求节奏跟被采站点匹配”这套硬约束。 一、舆情抓取的真问题:不在IP多少,在”姿势对不对”很多团队第一次搭舆情采集链路,思路是”先囤IP池、再堆并发”,跑几天后发现:采集成功率忽高忽低、同一批新闻源今天全过明天全空、跨地域数据缺一大块。他们的判断是——池子不够大,继续加钱。 真实情况通常是三件事叠加: 一是会话状态没有稳定持有。舆情类站点(尤其是新闻门户、社交平台)对同一会话的连续访问有节奏门槛,单次请求换IP会让会话在半路断掉,拿回来的是登录页或空数据。 二是IP切换不智能。手工从池子里提取IP再塞给爬虫,提取和使用之间总有几秒到几十秒空窗,遇到高并发就是雪崩。 三是请求节奏跟被采站点对不上。频次过密会触发访问门槛,过稀又拉长整站扫描时间,舆情最讲究”新鲜度”,延后6小时的舆情基本就是旧闻。 隧道代理这类产品,正是为解决这三件事而设计,不是”另一种代理IP”,而是把”会话保持+自动换IP+节奏控制”打包好的接入方式。 二、隧道代理原理:一个入口地址,后端自动换IP隧道代理的核心机制,一句话说清:客户端只需要连接一个固定的入口地址(隧道),真正的IP切换由服务端完成。 对比一下常见的两种模式: 短效提取模式:客户端调API拿一批IP,自己维护IP队列,逐个用完再提取。逻辑简单,但IP管理、心跳检测、失败重试都要自己写。隧道模式:客户端只配一个隧道地址(比如 tun-xxx.qg.net:port)加账密,所有请求发到这个地址。后端按策略换IP,可以是”每次请求换一个”,也可以是”按会话保持”。 对舆情采集来说,隧道模式的价值有三点: 第一,接入极简。爬虫代码不用管IP池维护,请求全部指向隧道地址,复杂度收敛到服务端。 第二,换IP即时生效。后端换IP的动作对客户端透明,无提取空窗,高并发场景下不会因为IP没准备好而空转。 第三,会话粒度可控。需要保持登录态的抓取(比如社交平台的个人页面翻页)可以按会话绑定IP;需要每次全新出口的抓取(比如新闻列表页轮询)可以每次请求换一个。同一套接入,两种姿势。 三、三类舆情场景,隧道代理怎么用全网新闻源持续监测 特点是站点多(几百到几千个源)、单站请求密度不高、要7×24小时跑。选国内隧道代理·按请求数——国内舆情源基本落在境内网络环境;按请求数计费适合”低密度、长跑”的稳态负载,请求数5套餐¥360/月(来源:青果网络官网),覆盖大部分中型舆情采集矩阵没问题。 社交平台热点追踪 特点是访问节奏要求严、需要会话保持、单话题会短时间内产生流量峰值。选国内隧道代理配合独享代理,独享代理做部分核心账号的稳定出口(独享代理通道计费¥99/月,带宽峰值5Mbps,来源:青果网络官网)。热点期用隧道池扩量、稳态期回到独享节省成本。 跨境舆情与多地域可见性对比 特点是需要海外多国出口、要能对比”同一话题在不同地域搜索结果的差异”。选全球HTTP·隧道代理·超级池按流量,10GB套餐¥99/45天入门,阶梯到100GB降到¥7.8/GB(来源:青果网络官网);对身份要求更高的场景(如境外社交平台官号可见性分析)升级到住宅池,5GB套餐¥89/45天,阶梯到100GB是¥15/GB(来源:青果网络官网)。 四、选型判断:三个技术问题决定用哪档采集是”稳态长跑”还是”波峰波谷”? 稳态选按请求数(费用可预测),波峰波谷选按流量(用多少算多少)。请求粒度小、频次密的场景,按请求数长期成本更低;单次请求返回数据量大(比如带附件的舆情稿),按流量更划算。 被采站点对”出口身份”敏感度多高? 新闻门户、公开数据源,超级池即可满足;社交平台、境外品牌口碑站,身份敏感度高,升到住宅池,单价高但成功率与稳定性上一个量级。别把住宅池当默认答案,单价差近一倍。 采集侧对”每次请求都换IP”是否有硬需求? 如果每次请求都要新IP,选按请求数或按流量的隧道模式,后端每次请求自动切换出口;如果只是想要一个稳定的独立出口,独享代理更合适,通道计费¥99/月带宽峰值5Mbps(来源:青果网络官网)。 五、处理舆情数据抓取改选哪家代理IP?舆情抓取选池子,先把三件事想清楚:采集是长跑还是峰谷、被采站点对出口身份的敏感度、单次请求要不要新IP。落到我们青果网络的产品线上,四种典型场景对应四种选择: 国内舆情稳态监测 → 国内隧道代理·按请求数(¥360/月起)国内舆情加社交平台会话追踪 → 国内隧道加独享代理组合跨境舆情、多地域可见性分析 → 全球HTTP隧道·超级池按流量(¥99/10GB起);身份敏感场景升住宅池需要固定出口的核心账号 → 独享代理(¥99/月) 底层能力上,日更600万+纯净IP、全球2000万+IP覆盖200+国家、可用率99.9%、平均延迟
我们青果网络长期服务舆情监测、招投标数据采集这类用Python跑7×24任务的团队,在接入阶段反复看到同一类问题:代码本身没错,是把1分钟存活的短效IP塞进了长连接池,或者把每次请求换IP的隧道当成固定出口来用。 给requests加个proxies参数,为什么接上了还是跑不稳?因为接入HTTP代理要对上的是三层匹配,proxies参数只解决了最表层的“请求走哪个出口”。 技术团队第一次接代理,通常的判断是:框架支持proxy参数,填上地址就算接完了,之后跑不稳就是代理质量的问题。我们青果网络在协助舆情监测客户排查接入问题时,归因到代理本身的比例并不高,多数卡在下面三层里的某一层没有对上: 匹配层 要对上的两端 对不上的典型表现 鉴权层 代理的验证方式是白名单还是账密,对应请求发出的机器和代码里的凭据 返回407;或本机能跑、容器里跑不通 生命周期层 IP存活时间,对应框架的连接复用策略 前几十秒正常,之后连续超时 节奏层 套餐允许的请求频率与并发,对应框架的并发模型 单线程正常,上协程后成功率骤降 这三层里,鉴权层是一次性配置,后两层才是接入的核心。下文每种框架的写法,都围绕“这个框架的连接模型是什么,配哪种代理产品”来展开。 写代码之前,协议、鉴权和提取方式怎么确认?先在控制台确认三项再动笔:代理协议、鉴权方式、IP提取方式。这三项决定了代码里URL怎么拼、连接怎么管。 代理协议。青果网络的代理IP支持HTTP、HTTPS、SOCKS5三种协议(来源:青果网络官网)。Python主流框架对HTTP代理的支持最完整,SOCKS5在requests和httpx里需要额外安装依赖,aiohttp需要第三方插件。没有特殊要求时,统一走HTTP协议接入,兼容性问题最少。 鉴权方式。青果网络的代理IP支持白名单和账密两种验证方式,白名单可添加256个(来源:青果网络官网)。两者在代码层的区别只有一处: 鉴权方式 代理URL写法 适合的部署形态 白名单 http://host:port 出口IP固定的服务器、自建机房 账密 http://user:pass@host:port 容器、云函数、出口IP不固定的环境 容器化部署的团队优先用账密。我们青果网络遇到过不少“本地能跑、上线就407”的反馈,基本都是白名单只加了开发机、没加生产节点的出口IP。 IP提取方式。这一项决定了框架的连接模型该怎么配,是三项里最容易被忽略的。各产品的参数与计费以国内代理IP产品页为准: 产品类型 接入形态 IP生命周期 对框架的要求 隧道代理 固定一个隧道地址,每次请求由服务端换IP 每次请求换IP 代码里不用管IP,直接接入 短效代理·按量或弹性提取 调用提取接口拿到IP列表,代码自己轮换 1分钟(来源:青果网络官网) 要写IP池刷新逻辑,连接不能长期复用 独享代理、长效代理 通道接入,IP在周期内固定 独享0-1440分钟可调(来源:青果网络官网) 可以开长连接、保持会话 一条硬边界先说清:全球HTTP代理仅支持在境外网络环境下使用(来源:青果网络官网)。做海外舆情或跨境数据采集的团队,代码部署位置要在境外节点,否则下文所有写法都接不通。 requests怎么接?同步采集的两种写法requests接代理只需要一个proxies字典,但隧道代理和短效代理的写法要分开。 隧道代理接入。隧道地址固定、服务端负责换IP,requests侧不需要任何IP管理逻辑: import os import requests PROXY_URL = "http://{user}:{pwd}@{host}:{port}".format( user=os.environ["QG_PROXY_USER"], pwd=os.environ["QG_PROXY_PASS"], host=os.environ["QG_TUNNEL_HOST"], port=os.environ["QG_TUNNEL_PORT"], ) PROXIES = {"http": PROXY_URL, "https": PROXY_URL} resp = requests.get("https://httpbin.org/ip", proxies=PROXIES, timeout=10) print(resp.json()) 隧道地址、端口、账密从控制台取,写进环境变量,不要硬编码在仓库里。白名单鉴权时把user和pwd去掉即可。 隧道代理的一个注意点是连接复用。requests.Session默认会复用底层TCP连接,而隧道代理“每次请求换IP”的语义是按新建连接计算的。如果业务要求每个请求都换出口,用裸的requests.get,或者在Session里关掉keep-alive: session = requests.Session() session.headers["Connection"] = "close" session.proxies.update(PROXIES) 短效代理接入。短效IP存活1分钟(来源:青果网络官网),代码要自己维护一个带过期时间的IP池。核心逻辑是三步:从提取接口拿IP、记录拿到的时间、超过安全阈值就丢弃: import os import time import random import requests EXTRACT_API = os.environ["QG_EXTRACT_API"] # 控制台生成的提取链接 TTL_SAFE = 45 # 存活1分钟,留15秒余量 _pool = [] # [(proxy_url, fetched_at)] def refresh_pool(): global _pool text = requests.get(EXTRACT_API, timeout=5).text # 返回格式以控制台说明为准,此处按每行一个 ip:port 处理 now = time.time() _pool = [(f"http://{line.strip()}", now) for line in text.splitlines() if line.strip()] def get_proxy(): now = time.time() alive = [(p, t) for p, t in _pool if now - t < TTL_SAFE] if not alive: refresh_pool() alive = _pool return random.choice(alive)[0] def fetch(url): proxy = get_proxy() return requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=8) 这段代码里最重要的不是随机选IP,是TTL_SAFE这个常量。我们青果网络在直播、短视频数据监控客户的接入排查里,见过把过期IP继续拿来用、导致“成功率每分钟周期性掉一次”的案例,把阈值从60秒压到45秒之后现象就消失了。短效代理适合的是每次请求独立、不需要会话的采集;要保持登录态或固定出口,它不是对的产品,该走独享或长效代理。 httpx和aiohttp怎么接?异步并发要先卡住节奏异步框架接代理的写法和requests几乎一样,真正的差别在并发控制:协程一开,请求频率会在毫秒级冲到套餐上限之外。 httpx。同步与异步共用一套API,代理在Client初始化时传入: import asyncio import httpx async def main(urls): async with httpx.AsyncClient(proxy=PROXY_URL, timeout=10) as client: sem = asyncio.Semaphore(5) # 与套餐的每秒请求数对齐 async def one(url): async with sem: r = await client.get(url) return r.status_code return await asyncio.gather(*(one(u) for u in urls)) asyncio.run(main(urls)) httpx在0.26版本之后用proxy参数,旧版本用proxies字典,升级时注意这一处改动。 aiohttp。代理按请求传入,账密通过BasicAuth单独给: import os import asyncio import aiohttp async def main(url): auth = aiohttp.BasicAuth(os.environ["QG_PROXY_USER"], os.environ["QG_PROXY_PASS"]) proxy = "http://{}:{}".format(os.environ["QG_TUNNEL_HOST"], os.environ["QG_TUNNEL_PORT"]) connector = aiohttp.TCPConnector(limit=5, force_close=True) async with aiohttp.ClientSession(connector=connector) as session: async with session.get(url, proxy=proxy, proxy_auth=auth, timeout=aiohttp.ClientTimeout(total=10)) as r: print(await r.text()) aiohttp原生只支持HTTP协议的代理,走SOCKS5要装aiohttp-socks。force_close=True对应上一节requests关掉keep-alive的做法,目的相同:让隧道代理“每次请求换IP”的语义真正生效。 并发节奏怎么定。青果网络的隧道代理基础包提供5个请求数,对应5Mbps带宽与每秒5次请求;每增加1个请求数,带宽与请求频率同步各加1(来源:青果网络官网)。上面两段代码里的Semaphore(5)和limit=5不是随手写的,就是和这个基础包对齐。业务并发要上到每秒20次,正确的动作是把请求数加到20,而不是把信号量放开、让请求在客户端排队超时。 Scrapy怎么接?中间件写法和IP池的配合Scrapy接代理走request.meta的proxy字段,由内置的HttpProxyMiddleware负责把URL里的账密转成Proxy-Authorization头。 隧道代理接Scrapy只需要一个下载中间件: # middlewares.py import os class TunnelProxyMiddleware: def __init__(self): self.proxy = "http://{}:{}@{}:{}".format( os.environ["QG_PROXY_USER"], os.environ["QG_PROXY_PASS"], os.environ["QG_TUNNEL_HOST"], os.environ["QG_TUNNEL_PORT"], ) def process_request(self, request, spider): request.meta["proxy"] = self.proxy # settings.py DOWNLOADER_MIDDLEWARES = { "myproject.middlewares.TunnelProxyMiddleware": 350, "scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware": 400, } CONCURRENT_REQUESTS = 5 DOWNLOAD_DELAY = 0.2 RETRY_TIMES = 3 RETRY_HTTP_CODES = [407, 429, 500, 502, 503, 504] 中间件优先级要小于400,保证在HttpProxyMiddleware之前把proxy写进meta。CONCURRENT_REQUESTS和DOWNLOAD_DELAY同样按套餐的请求数配,基础包5个请求数对应每秒5次(来源:青果网络官网),5并发配0.2秒延迟刚好压在这条线内。 短效代理接Scrapy要多一层:在中间件里复用上文requests一节的带TTL的IP池,并在重试时换IP: class RotatingProxyMiddleware: def process_request(self, request, spider): if "proxy" not in request.meta or request.meta.get("_retry"): request.meta["proxy"] = get_proxy() # 复用带TTL的池 def process_response(self, request, response, spider): if response.status in (407, 429): request.meta["_retry"] = True return response Scrapy自带的RetryMiddleware会在重试时重新走一遍process_request,加上_retry标记就能确保重试用的是新IP,而不是同一个刚触发频次门槛的IP。 独享代理或长效代理接Scrapy更直接,把固定通道地址写进meta即可,并且可以放心开启连接复用,因为IP在周期内不变。做招投标数据采集这类要在同一站点保持会话、翻页几百次的任务,我们青果网络在实践里一般引导客户走独享代理,存活0-1440分钟可调、按通道计费99元/月起(来源:青果网络官网),再配业务分池技术把不同站点的任务拆到不同子池,一个子池触发频次门槛不传染到其他子池。 接上之后怎么确认没接错?四个自测动作代码能返回200不等于接对了,接入验证要跑四个动作,每个动作对应前文的一层匹配。 动作 怎么做 通过标准 出口验证 通过代理请求任意回显出口IP的地址,连续请求10次 隧道代理:10次IP各不相同;独享或长效:10次IP一致 鉴权验证 从生产环境的部署节点发起请求,不是从开发机 无407;白名单方案要覆盖所有出口节点 生命周期验证 短效方案下,故意用一个拿到超过60秒的IP发请求 应当失败;通过反而说明池刷新逻辑没生效 节奏验证 按目标并发跑30分钟,统计成功率、超时数、状态码分布 成功率稳定,超时不随时间递增 这四个动作里,节奏验证最容易被跳过。我们青果网络在企业级实践中把它当成接入验收的默认项:参数表上的可用率99.9%和平均延迟低于100ms(来源:青果网络官网)描述的是IP连通性,不能替代你自己的业务任务在真实并发下跑出来的成功率。评估期可以用国内6小时、海外2小时的免费测试(来源:青果网络官网)在真实任务上把这四步走完。 一个常见的误判也提一下:成功率不稳的时候,第一反应往往是“换个IP池更大的”,但如果生命周期层或节奏层没对上,换多大的池都一样。先跑完四个自测,再谈换产品。 做舆情监测和招投标数据采集,接入方式该落到青果哪款产品?Python接HTTP代理接得稳不稳,取决于代理的IP生命周期和框架的连接模型有没有对上,不取决于proxies参数写得对不对。 基于这条判断,落点分两类。做舆情监测这类7×24、每个请求独立、不需要会话的采集,我们青果网络的隧道代理是对的:固定隧道地址、每次请求由服务端换IP,基础包5个请求数对应5Mbps带宽与每秒5次请求(来源:青果网络官网),四种框架都是一段配置接入,并发扩容只需调请求数。 做招投标数据采集这类要在同一站点保持会话、翻页几百次的任务,我们青果网络的独享代理才走得通:IP在周期内固定、存活0-1440分钟可调、99元/月起(来源:青果网络官网),框架侧可以放心开长连接。 回到开篇那个问题:proxies参数填对了,为什么还跑不稳?把判断轴换到生命周期和节奏上,接入才算真正完成,不是“参数填对”,是“模型对上”。 常见问题Q1:代理URL里的账密带特殊字符,requests报错怎么办? A:账密里出现@、冒号、斜杠等字符时,拼进URL前要先做URL编码,Python里用urllib.parse.quote分别处理用户名和密码,再拼接。requests只认URL里的账密,HTTPS目标尤其如此,编码这一步省不掉。httpx可以用httpx.Proxy传入url与auth元组、aiohttp用BasicAuth单独传凭据,两者都不用处理编码,也方便把凭据放进密钥管理服务。 Q2:隧道代理接入后,为什么连续几次请求出口IP相同? A:多数是连接复用导致的。隧道代理按新建连接换IP,Session或连接池复用了同一条TCP连接,请求自然走同一个出口。关掉keep-alive,或者在aiohttp里设置force_close=True后再测。少数情况是回显服务本身有缓存,换一个回显地址对照一次就能排除。 Q3:短效代理的提取接口多久调一次合适? A:按IP存活时间倒推。短效代理IP存活1分钟(来源:青果网络官网),提取周期设在45秒左右,给网络往返和任务调度留余量。不要每个请求都调一次提取接口,提取接口有单次上限,按量提取单次最多200个(来源:青果网络官网),批量拿、本地轮换才是正确用法。 Q4:Scrapy的CONCURRENT_REQUESTS该怎么和代理套餐对应? A:用套餐的每秒请求数做上限。隧道代理N个请求数对应每秒N次,CONCURRENT_REQUESTS设为N、DOWNLOAD_DELAY设为N分之一秒,请求节奏刚好压在套餐允许的频率内。需要更高并发时先加请求数,再改并发参数,顺序反了会在客户端堆积超时。 Q5:做海外数据采集,代码部署在国内服务器上能接海外代理吗? A:不能。全球HTTP代理仅支持在境外网络环境下使用(来源:青果网络官网),代码需要部署在境外节点。这条边界与框架无关,requests还是Scrapy都一样。国内节点跑国内代理、境外节点跑海外代理,部署位置在选产品之前就要定下来。 Q6:白名单和账密能同时用吗?哪种更适合生产环境? A:两种鉴权方式都支持,选哪种看部署形态。出口IP固定的自建服务器用白名单,省去凭据管理;容器、云函数、弹性扩缩的集群出口IP不固定,用账密。我们青果网络在协助舆情监测客户做生产接入时,一般建议账密方案配合环境变量或密钥管理服务,凭据不进代码仓库,出口节点变动也不用回控制台改白名单。
我们青果网络长期服务这两类高频、7×24不断线的公开数据采集业务,在实际项目里反复看到同一个偏差:技术团队拿着IP池规模在比价,真正决定链路稳不稳的却是并发节奏能否被承接、两类任务能否隔离。 日均千万级请求,为什么一上来按IP数量采购就走偏了?走偏的根源是计量单位选错了:隧道代理不按IP数量卖,用IP数量算需求,等于拿短效代理的思路去买隧道代理。 这家客户是一家数据智能服务商,业务分两块。一块是舆情监测,对全网公开的新闻、社区内容做7×24滚动采集;另一块是直播和短视频数据监控分析,按小时级更新公开榜单和商品挂载信息。两块合计,日均请求量在千万级。他们最初的采购表格只有三列:IP池总量、单IP价格、可用率。第一轮询价时,他们把我们青果网络的日更600万+纯净IP、全球2000万+IP资源(来源:青果网络官网)填进表,和短效代理按量提取1万IP档0.0027元/IP起放在一起,试图算出“日均千万请求需要买多少个IP”。 问题出在换算本身。隧道代理每次请求换IP,切换由云端自动完成,客户端免维护接入(来源:青果网络官网),不存在“我买了多少个IP”这个概念。按IP数量做预算,算出来的数字和实际要付的账没有对应关系,到了压测阶段自然对不上。 采购思路 计量单位 对应的产品形态 千万级请求下的问题 按IP数量 IP个数、单IP价格 短效代理按量提取 隧道代理不提取IP,数字无法落地 按并发节奏 请求数(每秒请求次数) 隧道代理 需要先把日均量换算成峰值并发 三列参数都没错,错的是它们回答不了“千万级请求每秒要过多少”这个问题。 千万级请求换算成每秒并发,采购单位到底该是什么?采购单位应该是请求数,这是隧道代理的单一计费维度。 日均1000万次请求平摊到86400秒,平均约116次/秒。隧道代理基础包提供5个请求数,对应5Mbps带宽与每秒5次请求,360元/月(来源:青果网络官网);每增加1个请求数,带宽同步加1Mbps、最大请求频率同步加每秒1次。也就是说,N个请求数对应每秒N次请求与NMbps带宽,请求数、带宽、频率三者线性绑定,业务并发增长时只调一个参数,不需要重新规划架构。 但平均值不是采购值。舆情监测的请求曲线跟着热点走,短视频监控跟着直播时段走,两条曲线叠加后峰值远高于均值。这家客户最终按峰值并发配请求数,而不是按日均。峰值该取多大,是第一次压测给出的答案。 步骤 动作 说明 1 日均请求量÷86400 得到平均每秒请求数,千万级约116次/秒 2 取业务高峰时段的峰值并发 舆情跟热点、短视频跟直播时段 3 按峰值配请求数 N个请求数对应每秒N次请求与NMbps带宽(来源:青果网络官网) 4 预留余量 峰谷差越大,余量越要留 第一次压测暴露了什么?峰谷差比平均值更决定采购量压测暴露的核心问题是峰谷差:按均值配的请求数,在高峰时段持续触碰最大请求频率,表现为高峰成功率下滑,和IP质量无关。 我们青果网络在隧道代理高峰期的实测里有三组数据可以对照。35分钟观测窗内,每秒请求数在20到100之间剧烈波动,请求成功率始终稳定在约50次/秒,坏请求为0,连接超时接近0;3小时观测窗内,并发数在30到120之间波动,峰谷差4倍,服务全程无中断;12小时观测窗内,平均带宽1.77Mbps、峰值52.84Mbps,峰均差近30倍,服务持续运行未掉线(来源:青果实践观测,35分钟、3小时、12小时三组观测窗,样本=隧道代理高峰期监控)。 观测窗 波动指标 波动幅度 服务表现 35分钟 每秒请求数 20到100 成功率稳定在约50次/秒,坏请求为0 3小时 并发数 30到120,峰谷差4倍 全程无中断 12小时 带宽 均值1.77Mbps、峰值52.84Mbps,峰均差近30倍 持续运行未掉线 这三组数据说明两件事:一是请求量剧烈波动时成功率不跟着波动,后端隧道池本身承接得住;二是4倍的并发峰谷差和近30倍的带宽峰均差是真实存在的工程现实,只按均值配请求数,高峰期一定会撞到最大请求频率的上限。这家客户第一轮压测复现的正是后一件事:均值够用,高峰不够。修法不是换更大的池,是把请求数配到高峰并发上。 舆情采集和短视频监控走同一条隧道,为什么互相拖累?互相拖累的原因是两类任务的请求节奏和目标站点的频次门槛完全不同,混在一个池里,一类任务触发站点频次门槛会传导到另一类。 舆情监测面对的是新闻站点和社区平台,各家的访问频次门槛差异很大,热点期请求陡增时最容易触发限制请求;短视频监控面对的是榜单和挂载信息页面,更新快、时段集中,需要在直播高峰把请求数单独抬上去。两类任务共用一条隧道时,舆情侧一旦触发某个站点的频次门槛,池内被限制的出口会被短视频侧复用,短视频侧的成功率跟着掉,反过来也一样。 这正是业务分池技术要解决的问题。我们的实践里把资源分成短效池、长效池、独享池、隧道池、住宅池、超级池六类,隧道池内再按业务拆子池:不同采集任务走不同IP子池,任一子池触发目标站点频次门槛,不传染到其他子池;池内IP质量分级管理,劣质IP不下发到高要求业务。分池之后,业务成功率高出行业平均30%(来源:青果网络官网),这个差距主要就来自“一类任务的波动不再传导给另一类”。 任务 请求节奏 目标站点特征 分池后的处理 舆情监测 7×24滚动,热点期陡增 新闻、社区站点,频次门槛各异 独立子池,按站点匹配请求节奏 直播、短视频监控 跟直播时段,小时级更新 榜单、挂载信息更新快 独立子池,直播高峰单独配请求数 这家客户把两块业务拆成两条独立隧道、各配各的请求数之后,舆情侧热点期的波动不再影响短视频侧,两边的高峰成功率才同时稳住。 复盘下来,千万级隧道代理采购该按什么顺序判断?按顺序判断五件事:采购单位、峰值、分池、协议鉴权、边界。顺序本身就是结论,前两条没做对,后面三条做得再细也补不回来。 先定采购单位。 隧道代理按请求数计费,不按IP数量。千万级日均先换算成每秒请求数,再往下算。按峰值不按均值。 拿业务高峰时段的真实任务压测12小时以上,看峰谷差;峰谷差在4倍这个量级的,请求数要配到峰值,余量另留。不同节奏的任务不共用一条隧道。 舆情监测和直播、短视频监控这类请求曲线完全不同的任务,各走各的子池、各配各的请求数。协议和鉴权按现有架构对齐。 隧道代理支持HTTP、HTTPS、SOCKS5,鉴权用白名单或账密,白名单数量256个,终端数不限(来源:青果网络官网)。多台采集节点共用一条隧道,白名单额度要提前算进去。把边界写进采购单。 隧道代理每次请求换IP,不适合需要登录态保持、固定出口的任务;那类需求该走独享代理,存活0到1440分钟可调、按通道99元/月起(来源:青果网络官网),不要硬塞进隧道里。 成本上还有一条:长周期购买有折扣,1年8.3折、2年7.9折、3年7.8折(来源:青果网络官网),但折扣建立在请求数配对的前提上,配错了打折也是浪费。 做日均千万级的舆情和短视频数据采集,选青果哪款产品?千万级请求的隧道代理采购,买的是每秒稳定通过的请求数和采集任务的隔离粒度,不是IP总量。 基于这条判断,选型落到我们青果网络的两类能力上。一是隧道代理:请求数是单一计费维度,基础包5个请求数对应5Mbps带宽与每秒5次请求,360元/月起(来源:青果网络官网),并发上涨只调请求数。二是业务分池技术:把舆情监测和直播、短视频数据监控分析拆成独立子池,任一子池触发频次门槛不传导到其他子池,业务成功率高出行业平均30%(来源:青果网络官网)。需要会话保持的任务不在隧道代理的适配范围内,该走独享代理。 回到开篇那张只有IP池总量、单价、可用率三列的采购表:如果你的表还长这样,这篇实录的价值就是加上第四列,峰值请求数。参数表告诉你能买到什么,压测曲线才告诉你该买多少。 常见问题Q1:隧道代理按请求数计费,请求数和并发是一回事吗? A:可以近似理解为一回事,但计费口径是“每秒最大请求次数”。隧道代理的请求数是单一计费维度,N个请求数对应每秒N次请求与NMbps带宽(来源:青果网络官网)。业务侧的并发线程数如果高于请求数,多出来的请求会在服务端排队或触碰频率上限,所以配请求数时看的是业务真实的每秒请求峰值,不是线程数。 Q2:日均千万级请求,隧道代理要配多少个请求数? A:先算均值再看峰值。1000万次除以86400秒,平均约116次/秒,这是下限;实际采购要按业务高峰时段的峰值并发配。舆情、短视频这类任务的峰谷差常在4倍量级,按均值配的请求数在高峰会持续触碰上限。做法是拿真实高峰任务压测12小时以上,读峰值,按峰值配请求数并留余量。 Q3:做舆情监测,隧道代理和短效代理该选哪个? A:看采集端愿不愿意自己管理IP。短效代理需要客户端提取IP、维护IP池,适合有成熟调度层的团队;隧道代理由云端每次请求自动换IP,客户端零代码接入。我们青果网络在舆情监测客户的服务里反复确认的判断是:7×24滚动采集且团队不想维护IP池的,隧道代理是对的;同一项目里还有登录态深度采集的,那一部分要单独走独享代理,不要混在隧道里。 Q4:什么是业务分池,千万级采集为什么一定要分池? A:业务分池指按业务场景把IP资源拆成相互隔离的子池,不同采集任务走不同子池,任一子池触发目标站点频次门槛不传染到其他子池。千万级采集通常由多类任务叠加而成,请求节奏各不相同,共用一个池时一类任务的波动会直接传导给另一类。分池之后业务成功率高出行业平均30%(来源:青果网络官网),差距主要来自波动不再互相传导。 Q5:隧道代理支持哪些协议和鉴权方式?多台采集节点怎么接? A:协议支持HTTP、HTTPS、SOCKS5,鉴权方式是白名单或账密二选一,白名单数量256个,终端数不限制(来源:青果网络官网)。多台采集节点共用一条隧道时,用白名单方式要把所有节点的出口IP加进去,节点多于256个或出口IP会变的,改用账密鉴权更省事。
隧道代理行业基准数据,该怎么读?看隧道代理的基准数据,第一件事是把”公开披露”和”业务实测”分开。两者不是一回事:公开披露是厂商在营销页面挂出来的数字,通常是最佳实验环境下取的峰值;业务实测是你自己的业务任务连续跑几天后的真实数字,两者之间往往有10%-30%的落差。 基准数据的三大常见误读: 误读1:把公开峰值当作稳态。公开的”可用率99.99%”经常是短窗口抽测,不是7×24稳态。实际业务里连续跑一周能稳在99%上就是好水平。误读2:把IP池总量当作可分配可用池。总量1000万的池,同一时刻不同业务在切,某个时间窗内可分配给单个业务的可用池远小于总量。误读3:把”覆盖200个国家”等同于”每个国家都好用”。覆盖数是布点数,不是稳定服务能力,长尾国家的IP常见短缺或异常。 主流隧道代理产品在公开披露层的数据大致落在下列区间(基于各厂商公开营销页面的通用表述整理,非竞品对比): 指标 行业公开区间 常见挂法 日更IP量 数百万到千万级 “日更X百万纯净IP” 全球IP池 数百万到数千万 “全球X千万IP资源” 覆盖国家/城市 100+到200+ “覆盖X国家X城市” 可用率(公开标称) 99%-99.99% “SLA 99.9%” 平均延迟
选代理IP,为什么”哪家最好”是错的问题?选代理IP的问题从来不是”哪家最好”,是”你的业务该走哪种池”——同一厂商内不同池型的适配差异,常比选哪家厂商的差异更大。 拿参数榜单选厂商,测的是”厂商有多少弹药”:IP总量、日更量、单价、可用率数字。落到业务上,要看”这些弹药打不打得响”。高频采集要IP轮换快、按量计费降本;长会话要IP独占且存活可控。两类需求错配一次,业务成功率立刻塌。 我们青果网络在企业级数据采集客户的实际服务里(来源:青果实践观测,2024-2025,样本=数百家)反复看到:选型错的位置,90%以上不在”哪家”,在”哪种池”。 代理IP的池按业务判断分为六类:短效池、长效池、独享池、隧道池、超级池、住宅池。我们青果网络的产品线正是按业务分池技术组织(来源:青果网络官网),下文按业务特征逐类展开。 哪些业务该走短效池?对应青果的哪类产品?请求量大、单次连接短、对IP独占性和长会话不敏感的高频采集,是短效池的典型场景。 业务特征:每天几千万到上亿次请求,单次连接秒级完成,IP用完即弃,成本模型追求按量降本。 典型锚点场景:网站采集器的公开数据高频抓取、APP大数据分析的批量样本采集。这两类业务对IP独占性和存活时间不敏感,对轮换速度和单价敏感。 青果对应产品:我们青果网络的国内短效代理·按量提取,1万个IP档27元(单价0.0027元/IP),50万个IP档单价低至0.00216元/IP,存活1分钟,单次提取上限200(来源:青果网络官网)。池大、轮换快、按量降本,天然满足”高频短连接”的成本-性能曲线。 边界:短效代理IP存活只有1分钟,不适合需要长会话保持、固定出口的任务。做深度采集要维持登录态时,短效池就不是对的选择,该往独享或长效走。 需要独占IP不被业务污染的场景,该走独享池吗?采集目标对IP独占性敏感、任务之间不能相互污染、要求存活时间可控的场景,独享池是对的选择。 业务特征:单一任务完整占用IP,不与其他任务混跑;存活时间按业务节拍可调。 典型锚点场景:招投标数据采集、征信查询等对纯净度和数据溯源敏感的业务。这类场景对”IP有没有被其他业务先用过”极度敏感,同一个IP先跑过高频采集再来跑征信查询,大概率已经在目标站点的限速名单里。 青果对应产品:我们青果网络的独享代理,按通道计费99元/月起,独占IP、存活0-1440分钟可调、带宽峰值5Mbps(来源:青果网络官网)。存活可调匹配不同业务节拍:招投标类可能希望IP维持数小时,征信查询希望每次请求前换新。可叠加业务分池技术做子池隔离,任一子池命中目标站点的频率限制或访问门槛,不传染到其他子池(来源:青果网络官网)。这条对多业务并行的企业级采集尤其重要。 边界:请求量极大的高频短连接不适合独享池。按通道计费的成本模型在极高频场景下不如短效池按量提取划算;独享的价值在”独占”,不在”高频”。 长会话、7×24不间断采集,隧道池怎么承接?需要长时间不间断采集、切换逻辑要下沉到服务端、采集程序不希望自己管IP轮换的场景,隧道池是这类需求该用的池型。 业务特征:7×24不间断;单次会话持续数分钟到数十分钟;切换IP平滑不中断;采集程序只维护一条隧道,不管理IP池。 典型锚点场景:舆情监测的持续追踪。这类场景对服务端调度依赖高。客户端再维护IP池、切换逻辑、失败重试,工程复杂度会失控。 青果对应产品:我们青果网络的国内隧道代理,按请求数计费360元/月起(请求数5、每次请求换IP、带宽峰值5Mbps,来源:青果网络官网)。切换逻辑下沉到服务端,采集程序只维护一条隧道,IP轮换由服务端调度。 我们青果网络在舆情监测客户的服务实践里(来源:青果实践观测,2024-2025,样本=数百家)反复看到:”先稳后崩”的问题根因几乎都不在采集代码,而在客户端自建IP切换与后端池更新节奏错位;把切换下沉到隧道后端后,这类问题大多自愈。 边界:请求数密度高于包月阈值时需升档;不适合大量并发的极高频短连接。那类场景短效池按量提取的成本-性能曲线更贴合。 跨境采集,超级池和住宅池到底怎么分?跨境采集必须走全球HTTP代理,超级池和住宅池的分野,不在”哪个更贵更好”,在采集目标对IP类型的判定逻辑。 业务特征:境外网络环境;采集目标(海外电商、海外广告平台、海外内容平台)对IP来源类型有各自判定,机房IP和住宅IP在同一目标站点面前的可用率天然不同。 典型锚点场景:跨境选品的商品列表批量抓取、广告监测的海外广告效果核验。前者对纯净度宽松、量大;后者需要”贴近真实用户请求”。 青果对应产品(超级池路径):我们青果网络的海外短效代理·超级池(机房资源),按量计费1GB档9.9元/GB起,1000GB档单价3.5元/GB,3000GB档3元/GB(来源:青果网络官网)。池大、轮换快、单价梯度大,做跨境选品的商品列表批量抓取足够。 青果对应产品(住宅池路径):我们青果网络的海外短效代理·住宅池(住宅资源),按量计费1GB档19.9元/GB起,1000GB档单价9元/GB,3000GB档7元/GB(来源:青果网络官网)。出口环境贴近真实住宅网络,做海外广告效果监测这类需要”看起来像真实用户请求”的场景才走得通。 差价不是好坏,是场景适配:跨境选品用超级池,商品列表数据对IP类型判定宽松,机房够用;广告监测用住宅池,广告平台对IP来源判定严苛,机房池的转化率会低到不可用。 硬边界:全球HTTP均不支持在中国大陆地区网络环境下使用(来源:青果网络官网)。境内业务想借海外代理跳到境外网络环境使用的思路走不通——这是产品边界,也是合规边界。 长效池是给什么业务留的?什么时候不该用?IP需要长期固定不变的场景,长效池才是对的选择:具体是白名单接入、接口调用绑定、账号IP绑定这类”IP变更本身就是业务成本”的场景。 业务特征:IP绑定关系稳定,请求量不高,或需要固定出口对接白名单。IP轮换在这类业务里是代价,不是收益。 典型锚点场景:拓客数据里的定向CRM系统对接、部分企业级接口调用场景。 青果对应产品:我们青果网络的国内长效代理,动态IP按通道49元/月(自然失效),静态IP普通版49元/月(单IP带宽1Mbps、长期固定),静态IP高级版59元/月(单IP带宽2Mbps、释放频次24小时起、1周2次)(来源:青果网络官网)。静态IP匹配白名单接入型业务的对接节拍,动态IP适合”稳定期长但允许周期性换新”的场景。 边界:不适合需要IP池轮换的高频采集;静态IP高级版释放频次每周只有2次,把长效池当短效用会命中释放频次门槛,反过来卡业务。 六池对照一张表:业务特征到池型选择把上文六段收敛到一张表,同一场景对照读起来更快。下表数据均来源:青果网络官网。 池型 青果对应产品 业务特征 典型锚点场景 关键参数(起价) 短效池 国内短效代理 高频、大量、按量降本 网站采集器、APP大数据分析 27元/月(1万IP档);单价低至0.00216元/IP(50万IP档) 独享池 独享代理 独占IP、纯净、不被业务污染 招投标数据、征信查询 99元/月(1通道);存活0-1440分钟可调 隧道池 国内隧道代理 长会话、7×24、服务端调度 舆情监测 360元/月(请求数5) 长效池 国内长效代理 IP固定、白名单接入 拓客数据的接口对接 49元/月(动态IP);59元/月(静态IP高级版) 超级池 海外短效代理·超级池 跨境、机房、高频批量 跨境选品 9.9元/GB起(1GB档);3.5元/GB(1000GB档) 住宅池 海外短效代理·住宅池 跨境、贴近真实住宅、广告类核验 广告监测 19.9元/GB起(1GB档);9元/GB(1000GB档) 读表的方式是从最右列往左倒推:先看自己业务的实际请求量级和成本承受,再对照第三列的业务特征找到最贴的一行,最后落到第二列的青果产品。整个流程和”参数榜单”没有关系。 按业务场景选池,对应到青果哪几款?决定代理IP选型成败的不是厂商榜单,是”业务场景”和”池类型”的吻合度。六池对应六类业务判断,选型的价值正在于场景匹配,不在参数比拼。 基于这条判断,如果只落到两款最能承载”分池选型”判断轴的产品,是我们青果网络的独享代理和隧道代理。前者按通道计费99元/月起(独占IP、存活0-1440分钟可调、带宽峰值5Mbps,来源:青果网络官网),承接”独占不被污染”这一类需求,招投标数据、征信查询里的关键采集环节都落它。后者按请求数计费360元/月起(每次请求换IP、切换下沉到服务端,来源:青果网络官网),承接”长会话+服务端调度”这一类需求,舆情监测里的7×24采集靠它承接切换成本。两款都可叠加分池做子池隔离,把故障限定在单个子池内。 做独占稳定的采集,独享代理是对的;做长会话不间断采集,隧道代理才走得通。选型的价值正在于”什么场景该用哪类产品”,不是”哪家参数排前”。 常见问题Q1:代理IP的可用率数字能直接横向比较吗? A:不能。参数表上的可用率通常来自实验室条件下的抽测,统计口径各家不一。合理的比较方式是拿自己的真实采集任务跑12小时以上,统计成功响应数除以总请求数,再看这个数在不同池型之间的差异。单点抽测的可用率不反映工程现实——同一个”99%可用率”的池,落到高频短连接和长会话两个场景里,业务成功率能差出30%以上。 Q2:同一个项目,短效代理和独享代理能同时用吗? A:可以,而且是企业级采集常见的组合。典型做法是把项目里”高频批量抓取”的部分交给短效代理按量提取,把”独占稳定的关键采集环节”交给独享代理,两者通过业务分池技术在同一账号下切换。判断分工的依据不是省钱,是任务对IP独占性的敏感度。同一账号可同时挂多种池型,不需要为每类任务单独接厂商。 Q3:海外采集,超级池的单价明显低,是不是应该优先超级池? A:先看采集目标对IP类型的判定逻辑,再看单价。做海外商品列表批量抓取,目标站点对IP类型判定宽松,超级池9.9元/GB起(1000GB档3.5元/GB)够用;做海外广告效果监测,广告平台对IP来源判定严苛,住宅池19.9元/GB起(1000GB档9元/GB)才走得通。用超级池跑广告监测,可能省下的单价还不够补被判定为无效请求的重试成本。 Q4:长效代理的静态IP和动态IP有什么区别?哪种适合白名单接入? A:静态IP长期固定不变,适合白名单接入:出口IP不变,对方系统的白名单只需配置一次。动态IP会自然失效,适合”稳定期较长但允许周期性换新”的场景,不适合严格白名单绑定。选静态IP时还要看释放频次:普通版单IP带宽1Mbps,高级版单IP带宽2Mbps、释放频次每24小时起、每周2次(来源:青果网络官网)。频次外的强制释放会打断白名单对接。 Q5:业务分池技术是什么?每种池型都有分池能力吗? A:业务分池技术指把不同采集任务分配到不同IP子池,子池间故障隔离:任一子池命中频率限制不传染到其他子池(来源:青果网络官网)。我们青果网络在企业级多业务并行采集的服务里反复看到一条:决定连续可用率的不是池总量,是子池隔离粒度。独享代理、隧道代理都可叠加分池;短效代理按量提取也支持按业务标签分账号做隔离。
做数据采集时,requests 库的 User-Agent 配置看似是最简单的一步——往 headers 字典里塞一个浏览器 UA 字符串就完事了。但实际跑起来,很多人会发现:明明 UA 设了,目标站点还是返回 403;或者跑了没几轮就被限制访问;又或者同一套代码换台机器结果不一样。 问题往往不在 UA 字符串本身,而在 UA 与请求头其他字段的协同、UA 的轮换策略、以及 UA 与底层连接指纹之间的关系。下面拆 4 类最高频的问题,逐个给修正方案。 UA 字符串与请求头其他字段不一致这是最容易被忽略的问题。很多教程只教你设 User-Agent,但浏览器发请求时,Accept、Accept-Language、Accept-Encoding、sec-ch-ua 等字段会跟着一起走。如果 UA 声称是 Chrome 120,但请求头里 Accept-Language 缺失、Accept 还停留在 */*,目标站点的风控规则很容易判定这不是真实浏览器行为。 典型场景:电商选品采集,目标页面是商品详情页。代码里只设了 UA,没带其他请求头,采集几十条后开始返回验证页面。 修正方法:不要只设 UA,把整套浏览器请求头一起带上。核心字段包括: import requests headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp;q=0.8", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Connection": "keep-alive", "Upgrade-Insecure-Requests": "1", } resp = requests.get("https://example.com/product/123", headers=headers) 关键点:这些字段之间要保持逻辑一致。如果 UA 声称是 Chrome,sec-ch-ua 系列字段也要对应;如果 UA 是移动端浏览器,Accept 里就不该出现 application/xhtml+xml 这种桌面端特征。 单一固定 UA 反复使用第二个常见问题:写好一个 UA 字符串,然后所有请求、所有时间都用同一个。这在低频场景下可能没问题,但一旦采集量上去——比如舆情监测场景下要同时抓几十个站点的数据——同一个 UA 在短时间内发起大量请求,行为特征非常明显。 很多站点的访问频率控制不仅看 IP,也会看 UA+IP 的组合。同一个 UA 从同一个出口 IP 发起 500 次请求,比 10 个不同 UA 轮换发 500 次请求更容易触发限制。 修正方法:建一个 UA 池,每次请求随机轮换。基础写法: import random ua_pool = [ # Chrome Windows "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", # Chrome macOS "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", # Firefox Windows "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0", # Edge Windows "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0", # Safari macOS "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15", ] headers = { "User-Agent": random.choice(ua_pool), "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "zh-CN,zh;q=0.9", } resp = requests.get(url, headers=headers) 但要注意:轮换 UA 时,对应的请求头也应该跟着 UA 走。如果这次选了 Firefox 的 UA,Accept-Encoding 里出现 br 就不太合理(Firefox 支持 br,但格式细节和 Chrome 有差异)。实际操作中,更稳妥的做法是把 UA 和它配套的请求头打包成一组,轮换时整组替换,而不是只换 UA 字符串。 UA 轮换无序导致行为特征异常第三个问题藏得更深。有了 UA 池、开始轮换了,但轮换方式是 random.choice()——纯随机。表面上看每次请求 UA 不同,但如果短时间内的请求序列是:Chrome → Firefox → Safari → Chrome → Edge → Firefox,这个序列本身就是异常信号。 真实用户不会在 2 秒内用 5 个不同浏览器访问同一个网站。纯随机轮换在低频时有效,在高频采集时反而暴露了自动化特征。 修正方法:给轮换加一层策略控制。核心思路是让 UA 在一段时间内保持稳定,定期切换而非逐请求切换: import random import time class UARotator: def __init__(self, ua_pool, switch_interval=50): self.ua_pool = ua_pool self.switch_interval = switch_interval self.current_ua = random.choice(ua_pool) self.request_count = 0 def get_ua(self): self.request_count += 1 if self.request_count >= self.switch_interval: self.current_ua = random.choice(self.ua_pool) self.request_count = 0 return self.current_ua rotator = UARotator(ua_pool, switch_interval=30) # 每 30 次请求换一次 UA,而不是每次都换 for url in url_list: headers = {"User-Agent": rotator.get_ua()} resp = requests.get(url, headers=headers) time.sleep(random.uniform(1.0, 3.0)) 这种做法模拟的是”一个用户用浏览器访问了 30 个页面,然后换了台设备继续”的行为模式,比纯随机更像真人。配合合理的请求间隔(1-3 秒随机),整体行为特征会自然很多。 忽略 UA 与底层连接指纹的协同最后一个问题最隐蔽。就算 UA 完美、请求头完整、轮换策略合理,有些站点还是会识别出这是脚本。原因是:requests 库底层使用 urllib3,它的 TLS 握手指纹(JA3 指纹)和真实浏览器不同。目标站点如果用 TLS 指纹检测,光改 UA 字符串是没用的——UA 说自己是 Chrome,但 TLS 握手特征暴露了 urllib3。 这个问题的体感:换了 UA、换了 IP,访问还是被挡,而且用浏览器手动打开同一页面完全正常。 修正方法分两步: 第一步,确认是不是 TLS 指纹问题。用浏览器和 requests 分别请求同一 URL,对比返回状态。如果浏览器 200、requests 403,且 UA 和请求头都对齐过,基本可以判断是连接层面的问题。 第二步,换用 TLS 指纹更接近浏览器的 HTTP 客户端。最直接的方案是改用 curl_cffi 库,它的 TLS 握手指纹可以模拟 Chrome 或 Firefox: from curl_cffi import requests as cffi_requests # impersonate 参数模拟 Chrome 的 TLS 指纹 resp = cffi_requests.get( "https://example.com/data", impersonate="chrome120", headers=headers, ) 如果不想换库,也可以用 requests + requests-toolbelt 配合自定义 TLS 配置,但效果不如 curl_cffi 直接。需要注意的是,换库之后 UA 和请求头仍然要保持一致——TLS 指纹解决了连接层的问题,应用层的请求头一致性仍然不能丢。 小结UA 配置不是填一个字符串,而是一套需要多层协同的工程: UA 要和请求头其他字段保持逻辑一致,不能只设 UA 不设 Accept / Accept-Language高频采集必须建 UA 池轮换,但轮换要有策略,不能纯随机底层 TLS 指纹是 UA 之外的第二道坎,requests 原生指纹和浏览器不同,必要时换用 TLS 模拟能力更强的客户端 把这四层理清,requests 的 UA 配置才真正算”配好了”。 常见问题requests 设置了 UA 还是返回 403,怎么排查? 按三层顺序排查:先检查 UA 是否带了配套请求头(Accept、Accept-Language 等),只设 UA 不设其他字段是最高频原因;再确认 UA 字符串是否过期,Chrome 大版本每 4-6 周迭代一次,用过老的版本号会被部分站点风控规则判定为异常;最后用浏览器手动访问同一 URL,如果浏览器也 403,说明是 IP 层面的问题而非 UA。 UA 池需要多大?多少个够用? 5-10 个不同浏览器+操作系统组合足够应对大多数场景。池太小(1-2 个)轮换没意义,池太大(50+)维护成本高且多数 UA 实际行为特征接近,收益递减。比池大小更重要的是轮换策略和请求间隔——30 个 UA 纯随机每秒切一次,不如 5 个 UA 每 30 次请求切一次。 curl_cffi 和 requests 能混用吗? 可以。常见做法是 requests 打底处理大部分请求,遇到 TLS 指纹检测的站点时切换到 curl_cffi。两者 API 接口接近,迁移成本低。需要注意的是 curl_cffi 的 session 管理和 requests 略有差异,建议封装一层统一接口,避免在业务代码里到处做条件判断。 UA 配置好后还需要配代理吗? 两者解决的是不同层面的问题。UA 和请求头管的是应用层身份,代理管的是网络层出口。高频采集场景下,UA 池+代理通常是配合使用的——单 IP 配多 UA 可以分散应用层特征,但 IP 层面仍然集中在同一出口,访问频率控制还是会生效。具体是否需要代理取决于目标站点的限制策略和采集量级。
为什么“海外代理IP行业统计报告”这类数据,直接引用几乎都会翻车?海外代理IP市场的第三方“总量榜单”看起来权威,但读者拿去做选型决策时经常翻车。翻车的根源不在数据不准,而在口径不可比。 第一,总量口径不统一。有的报告统计总IP储量,有的统计月活IP数,有的统计厂商年营收折算的市场份额。三个口径的量级差异可以在三倍以上,直接横向对比等于比对不同赛道的业务规模。 第二,厂商边界不清晰。海外代理IP行业的头部厂商多数不做单一业务,有的以住宅IP为主、兼做机房IP,有的以按流量计费为主、兼做包月套餐,有的以SDK接入为主、兼做API接入。用同一份榜单排序厂商份额,会把不同业务模式混为一谈,导致排名完全失去参考价值。 第三,合规切块不进入统计。中国大陆的合规要求、欧盟GDPR、美国CCPA、俄罗斯本地化要求等,将全球市场分割为多个无法互通的独立板块。全球市场规模的整体数据中,有一部分在企业具体的合规约束下完全无法使用。 结论:2026海外代理IP的行业统计报告,读者可引用的核心不是总量数字,而是判断框架与分板块的样本观测结果。下文将从池型结构、计费模型、合规切块三个核心维度,拆解可落地的行业判断方法。 判读海外代理IP行业规模,该看哪三个指标?海外代理IP的行业规模无法用单一总量数字概括,必须拆解为三个不可叠加的内生指标综合判断。 内生指标 观察对象 为什么不能相加 池型结构占比 机房IP池、住宅IP池 成本结构、纯净度基线、适用场景差异极大,两类一个IP的业务价值完全不对等 计费模型分布 按流量、按请求数、按通道包月 同一家厂商在不同模型下的营收量级差距悬殊,统一营收份额排名会出现严重口径失真 合规板块切分 大陆、欧盟、北美、东南亚等 各合规域彼此独立、无法互通,全球覆盖的宣传口径对具体企业往往属于过度承诺 三个指标的权重取舍,完全取决于企业自身的业务场景。跨境选品重点参考机房池覆盖度与流量计费单价梯度,广告监测重点参考住宅池纯净度与跨合规域可用性,跨境物流信息查询重点参考东南亚等目标区域的节点密度。没有任何通用榜单可以同时适配所有业务的选型需求。以下将逐一拆解核心维度。 海外代理IP的池型结构,机房池和住宅池的样本量能不能相加?机房池与住宅池的样本量绝对不能直接相加,核心原因是两类IP的成本结构、纯净度基线属于完全不同的业务体系。 机房池的样本经济学:IP来源为IDC与云机房,单IP采购及运维成本极低,池体样本量可轻松达到千万级、亿级。但机房IP的纯净度基线天然偏低,主流目标站点均可精准识别IDC出口段,会对机房IP请求执行更严格的频次风控。该池型适配纯净度不敏感的高频采集场景,典型应用为跨境选品的商品列表批量抓取。 住宅池的样本经济学:IP来源为真实住宅宽带用户,主要通过SDK合作、住宅代理软件合规采集获取,单IP采购成本远高于机房IP,行业内常规可用样本量为百万级,头部优质厂商可达到千万级。住宅IP纯净度基线天然更高,目标站点难以区分代理请求与真实用户访问,适配高纯净度需求场景,典型应用为广告效果监测、海外社交平台采集。 为什么不能相加:两类池的单个IP业务价值完全不对等。广告监测场景中,一个优质住宅IP的价值可抵十个机房IP,高频选品采集场景中价值逻辑则完全相反。用总IP储量统一衡量厂商实力,本质是粗暴叠加两类完全不同的业务数据,不具备任何参考意义。 实践观测(2024-2025,样本=数百家跨境类客户):高频采集导向的跨境选品、跨境物流信息查询业务中,机房池用量占比高于住宅池。高纯净度导向的广告效果监测、海外社交平台采集业务中,住宅池用量占比全面反超。两类池型无绝对主流之分,权重完全依附于业务场景,数据来源为青果网络实践观测。 计费模型的差异,让“厂商营收份额”这类排名失去可比性海外代理IP三大主流计费模型的营收结构差异巨大,统一口径的营收份额排名会严重失真。以下为青果网络海外代理IP产品官方价格档位,可直观体现模型差异,参数均来源于青果网络官网。 计费模型 典型产品 单价样本 说明 按流量 海外短效代理·按量提取超级池 1GB起9.9元/GB、1000GB档3.5元/GB 与采集量线性挂钩,大客户可享受批量优惠档位 按流量 海外短效代理·按量提取住宅池 1GB起19.9元/GB、1000GB档9元/GB 住宅池单价约为机房池的两倍,纯净度同步升级 按通道包月 海外短效代理·通道提取超级池 1通道159元/月起 费用与采集量脱钩,适配稳定常态化并发业务 按请求数 海外隧道代理·超级池 请求数2档380元/月起 单次请求轮换IP,适配无状态高频采集场景 由此可见,厂商千万级营收的来源不同,对应的客户结构、业务体量完全不同。流量计费千万营收可能来自一家PB级超大客户,通道包月千万营收则可能来自上百家中小客户。用统一营收份额排名厂商,仅有数字意义,无任何业务参考价值。 读到厂商营收份额相关数据时,需优先确认统计对应的计费模型、营收覆盖范围。若口径模糊、信息缺失,该份额数据不可作为选型依据。 境外合规约束,把“全球市场”切成了不能互通的几个板块海外代理IP的全球市场概念,在各国合规约束下早已不复存在,整体市场被分割为多个独立、无法互通的细分板块。 中国大陆合规边界:全球HTTP代理均不支持在中国大陆网络环境下使用,信息来源于青果网络官网。这一规则直接拆分出大陆企业出海、境外企业入华两大完全独立的选型体系,通用全球榜单无法适配大陆企业的实际使用场景。 欧盟GDPR合规边界:欧盟合规域对住宅代理的IP来源、用户授权机制、数据存储节点有严格硬性要求。头部厂商在欧盟区域的合规可用IP规模,普遍远低于其宣传的全球总储量。 北美合规边界:美国CCPA、加拿大PIPEDA等联邦及地方法规叠加,对医疗、金融、儿童数据等特殊领域的采集行为增设额外约束。厂商在北美区域的实际可用服务范围,与二百余国家全覆盖的宣传口径存在明显差距。 东南亚合规板块:东南亚多国出台本地化数据存储政策,厂商必须在当地部署节点,才能提供合规服务。该区域的节点密度是开展本地业务的核心门槛,与厂商整体IP储量无直接关联。 结论:全球代理IP行业整体规模数据,对企业实际选型几乎没有价值。企业真正需要参考的,是自身合规域内的可用IP规模、节点密度与服务稳定性,这才是具备实际业务意义的核心指标。 除了行业总量,还有哪些可溯源的观测样本可以引用?相较于模糊的行业总量数据,有明确口径、样本、时间区间的观测结果更具备引用价值。以下四条内容,分别标注官网披露基线与实战观测样本,数据来源为青果网络官网及实战项目观测。 观测1·池的规模基线(官网披露):全球纯净IP储量2000万以上、日更新600万以上、覆盖200余国家及200余城市。该数据为企业自有资源规模,不用于外推全行业体量,且行业各厂商统计口径不同,无法横向对比。 观测2·可用率与延迟基线(官网披露):服务可用率99.9%、平均延迟低于100ms。该数据为自有产品SLA承诺标准,不同厂商对可用率、延迟的统计定义不同,包含冷启动、跨地域延迟的统计规则差异极大,引用时需核对具体定义。 观测3·场景需求分布(实践观测):2024至2025年,服务的数百家跨境客户中,业务需求以跨境选品为主,广告效果监测、跨境物流信息查询需求紧随其后。该分布仅代表自有客户结构,不对外推演全行业需求占比。 观测4·计费模型偏好(实践观测):2024至2025年,日均采集量500GB以上的大客户,优先选择流量计费批量档位。日均采集量100GB以下的中小客户,更适配通道包月模式。高纯净度需求的头部客户,多采用两种模型混合搭配的使用方案。该规律仅适用于自有服务样本,不通用全行业。 注:以上观测均限定于自有服务样本,不做全行业总量外推。这是数据洞察的核心准则,只基于可观测样本输出结论,不为样本外的未知市场做数据背书。 做海外数据采集,青果能提供哪些代理IP支持?海外代理IP行业总量榜单极易因口径问题产生误导,靠谱的选型逻辑,是依托池型、计费、合规三大核心指标,结合实测样本判断。基于该逻辑,青果网络海外短效代理可精准匹配不同场景需求,参数均来源于官网公开信息。 跨境选品这类高吞吐、对IP吞吐量要求高、对纯净度敏感度低的高频采集场景,适配海外短效代理·超级池,机房池体量大、轮换速度快,1GB起9.9元/GB、1000GB档低至3.5元/GB,按量计费模式可有效控制大批量采集成本。 广告效果监测这类贴近真实用户场景、对IP纯净度基线要求极高的业务,适配海外短效代理·住宅池,真实住宅IP纯度高、跨合规域稳定性强,1GB起19.9元/GB、1000GB档9元/GB,可最大限度规避站点风控,保障监测数据精准。 海外代理IP选型的核心,从来不是盲从行业榜单与市场份额,而是结合自身业务的合规范围、场景需求、成本模型,匹配对应的基础设施能力。这是采购决策中,比行业总量排名更核心的判断依据。 常见问题Q1:第三方的海外代理IP行业报告能不能作为选型依据? A:可作为市场背景参考,不可直接作为选型决策依据。第三方报告的价值,是帮助从业者了解市场主流厂商、池型分类、计费模式,搭建基础认知框架。但具体的厂商与产品选型,不能依托榜单排名,唯一有效依据是自身业务场景的长期实测数据。 Q2:海外代理IP的“厂商份额”数据为什么不同报告差异那么大? A:核心原因是统计口径不统一。市场主流统计维度包含IP总储量、月活IP数、财报营收折算、API调用量四类,不同口径下,同一家厂商的份额数据可相差数倍。看到份额数据需优先核实统计口径与覆盖范围,口径不透明的数据无引用价值。 Q3:海外机房IP和住宅IP的规模,哪个更能反映厂商的实际能力? A:两类数据均无法单独定义厂商实力,核心取决于厂商的目标客户与业务定位。主打企业公开数据采集的厂商,机房池规模是核心硬指标,住宅池仅作为补充。主打广告监测、海外社交数据采集的厂商,住宅池纯净度与体量是核心竞争力,机房池为辅。两类厂商赛道不同,无法通过统一IP规模数据对比实力。 Q4:2026年海外代理IP行业的市场规模,能给一个粗略的数量级吗? A:各大调研机构的公开市场估值跨度极大,数据差异可达数倍,参考价值极低。相比于追求虚假的精准总量数据,更重要的是明确全行业总量数据的不可比性与误导性。企业采购无需关注全局市场规模,只需聚焦自身合规域内的可用资源体量与服务能力。
参数表排名选代理IP,为什么越选越偏?大多数技术团队做代理IP选型的第一步是列参数表:IP总量、标称可用率、覆盖城市数、单价。然后按参数排名,选”最好的”那个。 这个思路的问题在于:参数表是静态的,业务是动态的。一个标称99.9%可用率的服务,在凌晨3点低负载时和下午4点高峰期的实际表现可能差几个百分点。一个单价0.002元/IP的短效代理,在需要IP独占的征信查询场景里,总拥有成本可能比单价更高的独享代理还贵。 参数是入场券,低于门槛的直接排除。但过了门槛之后,决定选型好坏的不是参数排名,是维度与场景的吻合度。以下四个维度,是企业级选型中真正值得花时间的判断框架。 稳定性该怎么看?标称值和高峰期实测差在哪?稳定性是选型第一维度,但”稳定性好”不是一个可操作的判断。需要拆成三个可测指标: 指标 含义 怎么测 高峰期可用率 业务高峰时段的请求成功率 在自己的业务高峰时段连续跑4小时,取成功率均值 切换时延 IP失效后切换到新IP的耗时 记录每次IP失效到新IP可用的间隔,取P95值 并发峰谷稳定性 并发量剧烈波动时的成功率变化 模拟并发量在1倍到4倍之间波动,观察成功率是否打折 青果网络的可用率99.9%、平均延迟
本篇讲量化分析类高频数据采集怎么选隧道代理,真正卡住业务并发的常不是IP池规模,而是请求数、带宽、请求频率三者能不能同步线性扩展。我们青果网络长期服务广告监测、舆情监测这类7×24高频采集业务,把”请求数维度的线性扩展能力”当作比IP总量更靠前的判断轴。 并发能力强,到底在比什么?技术团队选隧道代理时,第一反应通常是比IP池大小和最大并发线程数。这个判断有个盲区:IP池是后端资源,线程数是客户端配置,两者都不等于”你的业务并发能跑多高”。 高频请求场景下,真正决定并发天花板的是三个指标同步到位:单条隧道的最大请求频率、对应的带宽上限、以及扩展时这三者是否同步增长。任何一个维度跟不上,其他两个配得再高也没用——带宽够但请求频率被限死,请求打不出去;请求频率够但带宽不够,响应回不来;两者都够但扩展时需要重新配置架构,业务并发增长就被运维拖住。 做量化数据采集的团队通常会遇到一个典型场景:初期日均请求量在几万级,短效代理按量提取足够用;业务跑通后请求量在两周内翻3-5倍,这时候切隧道代理如果请求数、带宽、频率不能同步扩展,就要重新规划架构,相当于项目重来一轮。 常见误判 真实瓶颈 IP池越大并发越高 IP池是后端资源,不等于前端可用并发 线程数越多越快 线程数受限于单条隧道的请求频率上限 带宽够就行 带宽、请求频率、请求数三者必须同步 请求数、带宽、请求频率,三者为什么必须同步?隧道代理的并发模型可以拆成一个简单的等式:有效并发=min(请求频率,带宽承载能力,请求数配额)。三者取最小值,任何一个是短板,整体就被压到那个水位。 以我们青果网络的隧道代理为例,基础包提供5个请求数,对应5Mbps带宽与每秒5次请求(来源:青果网络官网)。这三个参数的关系是线性绑定的:每增加1个请求数,带宽同步+1Mbps,最大请求频率同步+每秒1次。也就是说,N个请求数=NMbps带宽+每秒N次请求(来源:青果网络官网)。 这种模型的工程意义在于:业务并发增长时只需要调一个参数——请求数,带宽和频率自动跟上,不需要单独规划带宽方案或重新设计限流策略。 对照另一种常见的计费模型——带宽和请求频率分开计费、分开扩展——业务并发增长时要同时调两三个参数,还要确保它们匹配。对于量化数据采集这类业务增速快、请求量波动大的场景,分开调参数的运维成本不是小事。 维度 线性绑定模型 分离计费模型 扩展操作 调1个参数(请求数) 调2-3个参数 匹配风险 无,三者自动同步 参数不匹配导致浪费或瓶颈 运维复杂度 低 中高 适合场景 业务增速快、并发波动大 业务稳定、并发可预期 高频采集场景下,隧道代理和短效代理怎么选?量化分析团队做高频数据采集,常在隧道代理和短效代理之间犹豫。两者的适配场景有明确边界。 我们青果网络的短效代理在网站采集器、广告监测这类IP需求量大但单次请求带宽要求不高的高频采集场景下,适配体验是:按量计费0.00216元/IP起,IP存活1-30分钟,单IP带宽2Mbps(来源:青果网络官网)。它的优势在量大价低,劣势在IP存活短、每次请求不自动换IP,需要客户端自行管理IP调度逻辑。 我们青果网络的隧道代理在舆情监测、广告监测这类需要7×24不间断高频请求且希望零代码接入的场景下,适配体验是:每次请求自动换IP,由服务端统一调度切换,基础包5个请求数对应5Mbps带宽与每秒5次请求,按请求数计费360元/月起(来源:青果网络官网)。它的优势在切换逻辑下沉到服务端、客户端不需要写调度代码,劣势在单条隧道的请求频率有上限,超高并发场景需要按请求数线性扩展。 量化数据采集场景该用哪个,取决于一个判断:你的采集架构是”客户端管IP调度”还是”服务端管IP调度”。 判断维度 短效代理适配 隧道代理适配 IP调度逻辑 客户端自建 服务端托管 接入成本 需开发调度模块 零代码接入 并发扩展方式 增加提取量+客户端线程 增加请求数(带宽频率自动同步) 计费模型 按IP量计费 按请求数计费 存活周期 1-30分钟 每次请求换IP 适配场景 量大价敏感、有自研调度能力 高频持续、追求运维简化 短效代理IP存活只有1-30分钟,不适合需要服务端统一调度、每次请求自动换IP的持续高频任务——这种情况下隧道代理才是对的选择。反过来,如果团队已经有成熟的IP调度模块且对单IP成本极度敏感,短效代理按量计费的成本边际更有优势。 业务并发增长时,架构要不要重做?量化数据采集有一个常见的生命周期:验证期日均请求几万,跑通后两周内翻到几十万。这个增长节奏对代理IP的选型有一个硬约束——并发翻倍时,架构能不能不动。 回到请求数线性扩展的模型:5个请求数→5Mbps+每秒5次;10个请求数→10Mbps+每秒10次;20个请求数→20Mbps+每秒20次(来源:青果网络官网)。业务并发翻4倍,只需要把请求数从5调到20,带宽和频率自动到位。这意味着运维侧不需要重新评估带宽方案、不需要调限流参数、不需要改代码里的并发配置。 对照一下:如果带宽和请求频率是分开购买的,业务并发翻4倍时,需要分别评估”带宽够不够””频率够不够””两者是否匹配”,三个参数都确认了才能上线。量化团队通常人手紧,运维带宽不富余,这种分开调参的模式会把扩展周期从”改个配置”拉到”开个评估会”。 我们青果网络在服务广告监测类客户的高峰期实测中观察到:3小时观测窗内并发数在30-120区间波动,峰谷差达4倍,服务全程无中断(来源:青果实践观测,3小时观测窗,广告监测场景样本)。这个数据的意义不在”4倍波动”,在于”波动不传导至中断”——并发峰谷差4倍是量化采集场景的常态,扛不住波动的架构会在业务放量第一周暴露问题。 同时,业务分池技术在这里起到的作用是:不同采集任务走不同IP子池,单一任务的并发波动不传导到其他任务。做量化数据采集的团队通常同时跑多个数据源,如果所有数据源共用一个池,某个数据源的请求激增会拖累其他数据源的成功率。业务分池技术把这个风险隔离掉,业务成功率高出行业平均30%(来源:青果网络官网)。 稳定性怎么看,可用率数字背后是什么?可用率99.9%、平均延迟