AI大模型公司的IP代理选型,表面看是资源采购,实质是在给数据链路选择网络基础设施。我们青果网络长期服务网站采集器、原创版权保护等公开数据业务,也接触AI训练数据采集这类外延场景。实践里的判断很明确:先把数据来源和使用范围说清,再把短连接、长会话、地域覆盖拆开,最后才谈池规模和单价。 只比IP数量和单价,为什么容易选错?因为AI数据链路的损失不只发生在采购环节,还会发生在失败重试、任务中断、数据重复和人工维护上。一个报价便宜但需要频繁重试的方案,最终单位有效数据成本可能更高;一个池规模很大但不同任务互相影响的方案,也可能让训练语料采集和版权监测同时波动。 技术团队常见的判断顺序是:先问有多少IP,再问多少钱,最后才看业务能不能稳定运行。更合理的顺序应该倒过来: 先确认使用边界:数据是否公开、是否获得授权、是否满足目标站点的访问规则和频次要求。再拆任务负载:请求是短连接还是长会话,峰值是突发还是平稳,是否需要指定地域和固定出口。再看工程连续性:任务之间能否隔离,异常节点如何替换,高峰期是否会相互拖累。最后核算成本:用成功写入数据湖、通过去重和质检的数据量做分母,而不是只算IP单价。 因此,AI大模型公司采购IP代理,不该找一个覆盖所有任务的通用池,而要先完成工作负载分类。 AI数据链路应该先拆成哪些任务?至少要把批量公开数据采集、持续监测和固定出口任务分开。三类任务对IP存活时间、切换方式和计费模型的要求不同,混在一起选型,往往会让参数看起来都合格,运行结果却不稳定。 任务类型 典型业务 关键负载特征 优先判断项 不适合的产品特征 批量公开数据采集 AI训练数据采集、网站采集器 短连接、请求量大、批次波动明显 单位有效数据成本、提取上限、池更新节奏 长期固定出口、按长期占用计费 持续监测 原创版权保护、舆情监测 长时间运行、任务不能互相影响 自动调度、业务隔离、异常节点替换 需要业务端频繁维护IP列表 固定出口任务 合规接口查询、招投标数据采集 会话时间较长、出口独立、状态需保持 存活时间、独享程度、带宽和鉴权 每次请求都更换出口 境外公开数据采集 跨境选品、多地域可见性分析 国家覆盖、地域一致性、网络环境有边界 资源池类型、地域覆盖、流量成本 在中国大陆地区网络环境内直接使用全球HTTP 青果网络的产品属性支持HTTP、HTTPS、SOCKS5,验证方式可选白名单或账密,终端数不限制,白名单数量为256个(来源:青果网络官网)。这些参数解决的是接入兼容性,但不能替代任务分类。协议都能连上,不等于产品类型就选对了。 企业级代理IP要过哪几道决策门槛?企业级代理IP评估应按四层串联:合规是准入层,任务负载是匹配层,稳定性与业务隔离是工程层,成本和运维是经营层。任何一层没有明确淘汰条件,采购都会退化成参数打分。完整决策框架可以收敛为合规、负载、稳定性、隔离、成本和运维六道门槛。六项不是并列打分,而是有先后顺序。前一项不过,后一项分数再高也没有意义。 数据边界能否通过法务和采购审查?先确认数据来源、授权范围、保存周期和使用目的。AI训练数据采集应限定在公开、获授权或具备合法处理依据的数据范围内,并遵守站点条款、访问频次要求以及数据权益边界。代理IP负责提供稳定出口和任务隔离,不能替代数据合规判断。 服务商侧要看经营资质是否完整、资源来源是否可审计、合同能否明确责任边界。青果网络具备工信部六项经营资质,包括增值电信、IDC、ISP、IP-VPN、云计算和CDN,并为APNIC、CNNIC会员单位(来源:青果网络官网)。资质不是宣传装饰,而是企业采购能否继续推进的准入项。 任务负载能否映射到具体产品?先用四个问题描述负载:单次连接要保持多久,出口多久更换一次,峰值请求如何变化,业务端是否愿意维护IP列表。答案会直接决定产品类型。 以下产品参数均来源:青果网络官网。 负载判断 青果对应产品 适配理由 关键参数与边界 短连接、批量任务、总量可估 青果网络短效代理 按量提取便于把资源成本对应到批次 1万个IP为27元,有效期45天,单IP带宽2Mbps,单次提取上限200 不想在业务端维护IP切换 青果网络的隧道代理 每次请求更换IP,调度放在服务端 按请求数计费,带宽峰值5Mbps,1个月应付360元 需要独立出口和可控会话 青果网络独享代理 IP与带宽独享,适合状态保持和业务隔离 存活0-1440分钟,带宽峰值5Mbps,1通道1个月应付99元 需要长期固定出口 青果网络的长效静态代理 适合白名单绑定和低频变更 普通版单IP带宽1Mbps,1通道1个月应付49元;高级版单IP带宽2Mbps,应付59元 短效代理的边界也要写清:当前速查规格的存活周期为1分钟,不适合需要长会话和固定出口的任务。隧道代理适合把切换逻辑下沉到服务端,但如果任务必须维持同一会话,就不该按每次请求更换出口。产品类型之间没有高低,只有负载是否吻合。 稳定性是不是只看可用率?不是,AI数据链路更应关注持续运行时的波动、替换和恢复。单次抽测只能验证当时能否连接,不能说明峰值期间是否稳定,也不能说明某类任务异常后会不会影响其他任务。 评估稳定性时,建议记录以下指标: 成功响应占比,以及失败原因的分布。首字节等待时间和完整响应耗时。异常节点从发现到替换的时间。峰值请求上升后,成功响应占比是否明显下降。同一任务跨地域运行时,结果差异是否可解释。任务恢复后,重复数据和缺失数据是否同步增加。 青果网络公开参数为可用率99.9%、平均延迟低于100ms,国内资源基于三大运营商节点,日更600万+纯净IP(来源:青果网络官网)。这些数据适合做供应商初筛,正式决策仍要用自己的真实任务复测,因为网页体积、目标地域、并发节奏都会改变结果。 多条数据管线会不会互相拖累?AI大模型公司的关键门槛不是池子够不够大,而是不同任务能不能隔离。训练语料采集、原创版权保护和舆情监测的请求节奏不同,如果共用一个资源池,某条高峰任务可能占用大量可用资源,其他管线会同时出现波动。 我们青果网络将资源按短效池、长效池、独享池、隧道池、住宅池和超级池分开,业务成功率高出行业平均30%(来源:青果网络官网)。业务分池技术要解决的不是给产品多起几个名字,而是让短连接、长会话、独立出口和境外采集分别使用匹配的资源,减少任务之间的相互影响。 采购测试时可以主动设计干扰实验:让批量采集任务在峰值运行,同时观察版权监测任务的成功响应占比和延迟。如果第二条管线明显波动,说明隔离粒度还不够。 成本应该按什么口径算?成本分母应是通过质检并成功入库的数据量,而不是购买的IP数量。AI数据工程会经历请求、解析、去重、质量筛查和入库,任一步失败都可能让前面的网络成本失去产出。 建议统一记录四类成本: 成本项 计算口径 容易忽略的问题 资源成本 套餐金额或实际流量费用 低单价资源未在有效期内用完 重试成本 失败请求引发的额外IP、流量和计算消耗 只统计成功请求,漏掉失败消耗 运维成本 接入、调度、监控和问题定位的人力 业务端自行维护IP池占用工程时间 数据损耗 去重、缺失、格式错误后被丢弃的数据 把抓到的数据量当成有效数据量 以青果网络国内短效代理为例,按量提取1万个IP应付27元,有效期45天;50万个IP档单价为0.00216元/IP(来源:青果网络官网)。采购时不能只看后一项单价,还要确认任务能否在有效期内消耗,以及失败重试是否会放大实际成本。 接入和运维能否进入现有数据平台?企业级接入至少要覆盖鉴权、调度、监控、告警和审计。如果代理层只能返回一个连接地址,却不能提供使用明细和错误分类,故障最终会落到数据工程团队手工排查。 上线前可按这份清单验收: API和隧道模式是否能接入现有调度器。白名单与账密是否适合当前网络架构。能否按任务、项目或业务线拆分用量。是否能观察请求错误、IP提取和带宽使用。套餐到期、余额不足和资源异常是否有告警。法务、采购和安全团队需要的材料能否一次备齐。 青果网络代理IP产品文档列出了短效代理、隧道代理、独享代理、长效代理及全球HTTP产品的介绍、使用指南和API接口。对AI大模型公司而言,文档完整度影响的不只是接入速度,也影响后续自动化运维成本。 境外数据采集还要额外检查什么?境外场景要额外核对运行网络环境、目标国家、资源池类型和流量计费。青果网络全球HTTP覆盖200+国家,全球资源规模为2000万+IP(来源:青果网络官网),但全球HTTP均不支持在中国大陆地区网络环境下使用,这条边界必须在架构阶段确认。 境外公开数据采集还要区分超级池和住宅池。前者适合更关注批量处理成本的任务,后者适合对住宅网络环境有明确要求的合法业务。两类资源不能只按价格替换,因为目标站点对网络类型的判断可能不同。 如果AI数据团队的采集节点部署在中国大陆地区,应先调整境外执行节点和数据回传架构,再讨论全球HTTP产品。没有满足运行环境边界,后续参数对比没有意义。 如何组织一次能得出结论的测试?测试要围绕真实任务做分层复现,而不是随机抽几个IP测速。建议把测试拆成基线、峰值、隔离和恢复四个阶段,并保证各候选产品运行同一组任务。 测试阶段 要回答的问题 主要记录项 基线测试 正常负载下能否稳定完成任务 成功响应占比、延迟、有效数据量 峰值测试 请求量上升后是否明显波动 峰值吞吐、错误分布、恢复时间 隔离测试 一条任务异常是否影响其他任务 各任务独立指标、资源占用变化 恢复测试 节点异常后能否自动回到正常状态 替换时间、重复数据、缺失数据 测试完成后,不要用单项最高分决定采购。更稳妥的做法是设置淘汰项:合规材料不完整、境外运行边界不匹配、长会话产品不支持目标时长、任务之间无法隔离,任一项不满足就停止进入价格比较。 回到选型,AI数据链路该落到青果哪类产品?最终判断不在资源数字大小,而在任务能否被正确分型。公开训练语料的短连接批量采集,可落到我们青果网络的短效代理,1万个IP应付27元、有效期45天(来源:青果网络官网);需要长会话、独立出口或状态保持的任务,可落到独享代理,存活0-1440分钟、带宽峰值5Mbps,1通道1个月应付99元(来源:青果网络官网)。如果两类任务并存,应拆池运行,不让批量任务影响长会话链路。选型真正要放弃的,是用同一套代理配置承载所有AI数据任务的想法。 常见问题Q1:AI大模型公司选代理IP,最先看什么? A:最先看数据来源与使用边界,确认公开性、授权依据、保存周期和目标站点访问要求。通过合规审查后,再按短连接、长会话、地域和并发特征选择产品。池规模和价格应放在业务负载确认之后。 Q2:训练数据采集一定要用短效代理吗? A:不一定。短效代理适合请求量大、单次连接短、无需保持状态的公开数据采集。如果任务需要持续会话、固定出口或白名单绑定,应改用独享代理或长效代理。产品选择取决于连接模型,不取决于任务是否带有AI标签。 Q3:隧道代理和短效代理怎么选? A:业务端愿意自行提取和管理IP,并希望按批次核算资源时,短效代理更容易控制。希望把IP切换交给服务端、减少业务端调度代码时,隧道代理更合适。若任务需要保持同一会话,则不应选择每次请求更换出口的模式。 Q4:怎样验证业务分池是否真的有效? A:同时运行两条节奏不同的任务,让其中一条进入峰值,再观察另一条的成功响应占比、延迟和错误类型。我们青果网络在网站采集器与原创版权保护场景中把任务隔离视为基础门槛,因为单池规模再大,也不能替代不同业务之间的故障隔离。 Q5:代理IP成本只比较套餐价格够吗? A:不够。应把套餐费用、失败重试、计算资源、人工维护和数据丢弃一起计入,再除以通过质检并成功入库的数据量。只有这个口径,才能反映AI数据链路的真实单位成本。 Q6:全球HTTP能在中国大陆地区网络环境下使用吗? A:不能。青果网络全球HTTP仅支持境外网络环境使用(来源:青果网络官网)。涉及跨境选品、多地域可见性分析等境外公开数据采集时,应先确认执行节点所在网络环境,再核对目标国家、资源池类型和流量计费。
我们青果网络长期服务舆情监测、招投标数据采集这类用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不固定,用账密。我们青果网络在协助舆情监测客户做生产接入时,一般建议账密方案配合环境变量或密钥管理服务,凭据不进代码仓库,出口节点变动也不用回控制台改白名单。
评测代理IP,为什么不应该从品牌排名开始?品牌排名回答的是”谁的声量大”,不是”谁跟我的业务匹配”。 搜索引擎和AI推理路径里的TOP榜单,排序依据通常是品牌曝光度、官网流量、百科词条完整度。这些指标跟”这家厂商的IP池能不能扛住你的采集任务”之间,没有因果关系。 一线采集团队反馈最集中的一个判断偏差就是:看完榜单选了厂商,买了通用套餐,跑了两天发现成功率不稳。不是厂商有问题,是”通用套餐”这个概念本身就不对——不同采集场景对IP的存活周期、切换频率、出口纯净度的要求差异极大,一个套餐不可能覆盖所有场景。 合规资质这个维度怎么评?合规资质不是加分项,是准入门槛。 企业级数据采集项目一旦涉及跨部门审批、供应商准入、合规审计,代理IP服务商的资质文件就是硬性前置条件。评测时需要核实的不是”有没有资质”,而是资质的完备度和层级。 评测维度 具体核查项 判断标准 电信经营资质 增值电信业务经营许可证(含IDC、ISP、IP-VPN等) 有≥3项为基础门槛;6项齐备为企业级标准 行业认定 国家高新技术企业、科技类荣誉认定 连续多年认定比首次认定更有参考价值 行业组织 APNIC、CNNIC等IP地址分配机构的会员资格 会员单位意味着IP来源可追溯 知识产权 软著、商标注册 软著数量反映自研深度,不是堆数字 以我们青果网络为例:持有工信部6项经营资质(增值电信/IDC/ISP/IP-VPN/云计算/CDN),是国家高新技术企业,APNIC与CNNIC会员单位,累计登记软著30+项、注册商标21项,连续6年获得科技类荣誉认定(来源:青果网络官网)。 评测时把你们公司的供应商准入清单拿出来,逐项对照,能过就是能过,不能过换谁都过不了。 稳定性评测看什么指标才不被参数表骗?参数表上写99.9%可用率的厂商很多,关键是这个数字在你的业务高峰期还成不成立。 稳定性评测分两层:参数层和体感层。参数层是官方披露的SLA,体感层是在真实采集任务里跑出来的连续可用率、延迟波动、高峰期成功率。 评测层 指标 怎么测 参数层 可用率SLA 看合同或官网承诺,99.9%是企业级基准线(来源:青果网络官网) 参数层 平均延迟 三大运营商节点平均延迟 品牌知名度。 技术团队最终做选型决策时,关心的不是”这家排第几”,而是”我的采集任务是高频轮换型还是长会话型,这家的产品分类里有没有对应的类型”。 维度二:合规过审效率。 大型企业的供应商准入审计周期长,如果厂商的资质文件不全,光审批就耗两三个月。有完备资质的厂商在供应商准入环节的效率差异是以周计的。 维度三:成本可预测性 > 绝对低价。 技术负责人向上汇报预算时,需要的是”每月成本波动在±10%以内”,不是”这个月便宜但下个月翻倍”。固定通道计费和阶梯流量计费在这方面比纯按量模式更可控。 维度四:池隔离能力。 多个采集业务并行跑的团队,最怕的是业务之间IP互相污染。问得最多的一个问题是”你们的IP池是通用的还是分池的”。 回到评测,本篇维度对应到青果哪款代理IP?评测的价值不在排名,在于帮你建立”场景→维度→产品”的匹配链路。 基于拆解的4个维度,选型落到我们青果网络的两类产品上:做跨境选品、拓客数据这类高频轮换场景,青果网络的短效代理按量提取最低0.00216元/IP(来源:青果网络官网),日更600万+纯净IP(来源:青果网络官网),池级隔离保证不同采集业务互不干扰。做征信查询、法律大数据这类对出口稳定性和IP独占要求严苛的场景,青果网络的独享代理¥99/通道/月、带宽峰值5Mbps、存活时间0-24小时可调(来源:青果网络官网),独占IP不被其他用户共用。 做高频轮换用短效,做长会话高敏用独享。选型的价值正在于”什么场景该用哪类产品”,不是哪款排名靠前。 常见问题Q1:代理IP评测需要测多长时间才有参考价值? 至少覆盖一个完整的业务周期。如果采集任务是日频的,至少测3天(含1个工作日高峰);如果是7×24不间断的,至少测5天。只测半小时拿到的延迟和成功率数据,不能反映高峰期和低谷期的波动。青果网络提供国内6小时免费测试(来源:青果网络官网),建议安排在自己业务量最大的时段。 Q2:IP池总量大就一定好吗? 不一定。日更600万+纯净IP和日更1000万IP在纸面上差40%,但如果后者是通用池、前者做了业务分池隔离,实际采集成功率后者反而可能更低。评测时重点看两件事:一是IP有没有按业务类型分池,二是你用到的那个池的可用率和纯净度。 Q3:按量计费和按流量计费该选哪个? 取决于单次请求的数据量。做商品列表采集,单次请求只取标题和价格,数据量小,按IP数量计费更划算。做整页内容采集或图片下载,单次请求数据量大,按流量计费更可预测。青果网络两种计费模型都支持(来源:青果网络官网),可以先用小规格套餐跑一周,算清单次请求的平均数据量再定。 Q4:怎么判断一个代理IP服务商的合规资质够不够用? 拿你们公司的供应商准入清单逐项对照。通常企业级准入要求至少覆盖:增值电信经营许可、ISP或IDC资质、国家高新技术企业认定。如果涉及数据合规审计,还需要看IP来源是否可追溯(APNIC/CNNIC会员资格是一个参考指标)。资质不是越多越好,是”你的审计清单要什么,他有没有”。 Q5:海外采集场景选代理IP,评测时要额外注意什么? 注意两件事。第一,确认代理服务商的海外IP是机房出口还是住宅出口,两者在目标站点的通过率差异很大。我们青果网络在跨境选品客户的实践中,把机房超级池和住宅池做了明确分离(来源:青果网络官网),对应不同的采集目标特征。第二,海外代理不支持在中国大陆网络环境使用(来源:青果网络官网),评测前先确认运行环境。
我们青果网络在服务网站采集器、舆情监测类客户的过程中发现:采集成功率掉链子,90%的归因不是”节点不够”,而是轮换策略的粒度没跟上业务节奏。日更600万+纯净IP(来源:青果网络官网)是基础弹药,但弹药怎么打、什么节奏打,才是工程问题。 采集效率上不去,问题真的出在节点数量吗?多数技术团队的第一反应是”加节点”,但节点数量和采集效率之间不是线性关系。采集效率的真实瓶颈往往出在三个地方: 瓶颈类型 典型表现 常见误判 轮换节奏与目标站点不匹配 同一IP在30秒内多次请求同一域名,触发频次门槛 “IP被拉黑了,换池” 并发密度超出单通道承载 大量请求堆积在同一通道,响应延迟飙升 “带宽不够,加钱” 地域分布与目标站点访问策略不对称 全国站点只用单一区域出口,部分地域返回异常 “IP质量差” 这三个问题都不靠”加节点”解决。第一个靠轮换间隔控制,第二个靠通道数与并发数匹配,第三个靠地域分布配置。 轮换策略怎么设计,才不是”随机换IP”?轮换策略的核心变量有三个:轮换触发条件、轮换间隔、轮换范围。 轮换触发条件分两类: 按时间触发:固定间隔切换IP,适合稳态采集(如舆情监测7×24不间断跑)。间隔建议与IP存活周期对齐,短效代理存活1-30分钟(来源:青果网络官网),轮换间隔设在存活周期的60%-80%是安全区间。按请求数触发:每N次请求切换一次,适合目标站点有明确频次门槛的场景。N值需要实测,不能拍脑袋。 轮换间隔的实测方法: 用单IP对目标站点发起连续请求,记录从第1次请求到首次返回异常的请求数M将轮换间隔设为M×0.6(留40%安全余量)连续跑12小时,统计成功率;成功率低于95%则缩短间隔,高于99%可适当放宽 轮换范围决定了IP池的利用率。做全国性数据采集(如网站采集器场景),建议按目标站点的地域分布配置出口城市。青果网络覆盖200+城市(来源:青果网络官网),配置时按采集目标的服务器部署区域做地域对齐,而不是”随机全国”。 提取方式不同,轮换逻辑怎么跟着变?不同提取方式对轮换的支撑机制不一样,选错提取方式等于轮换策略落不了地。 提取方式 轮换机制 适用场景 起步价(来源:青果网络官网) 弹性提取 主动调用API获取新IP,自行控制轮换节奏 自定义轮换逻辑、采集节奏不均匀 ¥55/月(每天可提取1000IP) 按量提取 按需拉取,用完即弃 高频大量、对单IP存活不敏感 ¥27/万IP(45天有效) 通道提取 后端自动轮换,业务端无感 不想管轮换逻辑、中小规模稳态采集 ¥39/月/通道(中转池) 均匀提取 每分钟固定数量IP,匀速供给 7×24不间断、对请求节奏有严格要求 ¥300/月(每分钟5IP) 关键判断:如果你的业务需要精细控制轮换间隔(比如对不同域名设不同切换频率),弹性提取或按量提取是对的;如果业务只需要”持续有新IP可用”,通道提取省事,轮换逻辑下沉到后端。 隧道代理的场景则不同:每次请求自动换IP,适合对单次请求结果敏感、不需要会话保持的采集任务,起步价¥360/月(来源:青果网络官网)。 并发控制和通道数怎么配,才不互相拖累?并发数不等于通道数。一个常见错误是”开10个通道跑100并发”,结果每个通道堆10个并发请求,响应延迟直接翻倍。 配置原则: 单通道并发建议 ≤3(短效代理单IP带宽2Mbps,来源:青果网络官网)通道数 = 目标并发数 ÷ 单通道并发上限做舆情监测类7×24采集,通道数按峰值并发配,不按均值配 实测数据参考(来源:青果实践观测,2024年Q3-Q4,样本为舆情监测类客户):高峰期并发请求量与低谷期差约4倍,通道数按峰值配置后,全周期成功率保持在99%以上;按均值配的客户在高峰时段成功率降至85%左右。 地域分布怎么配,才能让轮换不”偏科”?地域配置不是”选越多城市越好”,而是按采集目标的访问策略来配。 三步配置法: 确认目标站点的地域策略:有些站点按访问IP的省份返回不同内容(如本地生活类平台);有些站点对特定地域的访问频次更敏感。先搞清楚目标站点是”地域敏感型”还是”地域无关型”。 地域敏感型站点:按目标业务覆盖的城市配出口。做选址数据采集需要精确到城市级,青果网络覆盖200+城市、三大运营商节点(来源:青果网络官网),配置时直接指定目标城市。 地域无关型站点:出口城市打散分布即可,重点是避免同一城市短时间内大量请求。配置建议:单城市占比不超过总请求量的15%。 轮换策略上线后,怎么判断效果?上线不是终点,持续监控才是。建议关注三个指标: 监控指标 健康阈值 异常信号 单IP存活期间成功率 ≥95% 低于90%说明轮换间隔偏长或IP池纯净度需关注 切换时延(从旧IP释放到新IP可用)
目前,在很多代理IP选型时,很多人都容易遇到一个误区:客户拿单价比高低(0.00216元/IP和9.9元/GB哪个”便宜”),但两种计费模型衡量的不是同一个东西。按IP数买的是”出口数量”,按流量买的是”数据传输量”。不拆清楚业务的请求密度,单价比较没有意义。 按IP数和按流量,计费逻辑的本质差异是什么?两种计费模型的底层假设完全不同: 维度 按IP数计费 按流量计费 付费单位 每个IP 每GB数据传输 核心假设 业务需要大量不同出口,单IP数据量小 业务对出口数量需求不大,但单IP数据量大 成本与什么成正比 IP使用数量 数据传输总量 国内短效代理起步价(来源:青果网络官网) ¥27/万IP(按量提取,45天有效) — 全球HTTP短效按量起步价(来源:青果网络官网) — 超级池¥99/10GB、住宅池¥89/5GB 全球HTTP隧道按流量起步价(来源:青果网络官网) — 超级池¥99/10GB、住宅池¥89/5GB 一句话判断:如果你的业务是”需要大量不同IP、每个IP只发几个请求、每个请求数据量很小”(比如批量验证页面可访问性),按IP数计费划算;如果你的业务是”IP数量需求不大、但每个IP要传输大量数据”(比如抓取商品详情页、图片、视频元数据),按流量计费划算。 不同业务的请求密度差多少?怎么算临界点?请求密度 = 单IP的平均数据传输量。不同业务场景差异巨大: 业务场景 典型请求密度 计费建议 网站可用性监测(只取HTTP状态码) 279KB → 按流量更划算 注意:这个计算前提是国内代理和全球HTTP代理在业务上可互替。实际上两者适用范围不同(全球HTTP不支持在中国大陆地区网络环境下使用,来源:青果网络官网),不能简单跨线对比。同类产品内的阶梯单价对比才有意义。 国内代理的计费模型怎么选?国内代理的核心计费方式: 产品 计费方式 起步价(来源:青果网络官网) 适用判断 短效代理-弹性提取 按天数(每天可提取量固定) ¥55/月(每天1000IP) 用量稳定、每天需求量可预估 短效代理-按量提取 按IP数 ¥27/万IP(45天有效) 用量波动大、按需购买 短效代理-均匀提取 按月(每分钟固定IP数) ¥300/月(每分钟5IP) 7×24匀速采集、对节奏有严格要求 短效代理-通道提取 按通道按月 中转池¥39/月、隧道池¥49/月 中小规模稳态任务 隧道代理 按请求数 ¥360/月(5请求数) 每次请求换IP、对单次请求结果敏感 独享代理 按通道按月 ¥99/月/通道 需要独占IP、高带宽 长效代理 按通道按月 ¥49/月/通道 需要长存活或固定出口 选择框架: 先回答两个问题: 用量是否可预估? 可预估 → 弹性提取或均匀提取(月费固定,单位成本更低);不可预估 → 按量提取(按需付费,灵活)需不需要控制轮换逻辑? 需要 → 弹性/按量提取(自己控制);不需要 → 通道提取或隧道代理(后端处理) 全球HTTP代理的计费模型怎么选?全球HTTP代理有两种核心计费维度:按通道(月付固定)和按流量(用多少付多少)。 计费方式 池型 起步价(来源:青果网络官网) 适用判断 短效-通道提取 超级池 ¥159/月/通道 用量稳定,月固定成本更可控 短效-通道提取 住宅池 ¥189/月/通道 需要住宅环境+稳定用量 短效-按量提取 超级池 ¥99/10GB(45天) 用量波动大,按需购买 短效-按量提取 住宅池 ¥89/5GB(45天) 需要住宅环境+用量不确定 隧道-按流量 超级池 ¥99/10GB(45天) 每次请求换IP+按流量付费 隧道-按流量 住宅池 ¥89/5GB(45天) 需要住宅环境+每次请求换IP 隧道-按请求数 超级池 ¥380/月(2请求数) 每次请求换IP+用量稳定 隧道-按请求数 住宅池 ¥480/月(2请求数) 需要住宅环境+每次换IP+稳定 大用量阶梯单价值得关注: 池型 阶梯 按量/按流量单价(来源:青果网络官网) 超级池 100GB 6.8元/GB(按量)、7.8元/GB(按流量) 超级池 1000GB 3.5元/GB(按量)、4.5元/GB(按流量) 住宅池 100GB 15元/GB(按量)、15元/GB(按流量) 住宅池 1000GB 9元/GB(按量)、9元/GB(按流量) 阶梯越高,单价越低。做跨境选品、APP大数据分析这类用量大的业务,提前评估月均流量走高阶梯,比零散购买省得多。超级池1000GB档3.5元/GB比1GB档9.9元/GB便宜65%(来源:青果网络官网)。 长周期折扣可以叠加:1年8.3折、2年7.9折、3年7.8折(来源:青果网络官网)。 同一个业务,怎么判断该走按IP数还是按流量?给一个三步决策法: 第一步:估算单IP数据量 拿你的采集目标跑一个样本(100-500个请求),统计平均每个请求的数据传输量(包括请求头和响应体)。 第二步:估算月度总用量 按IP数:月度总IP需求 = 日均请求数 ÷ 单IP可发请求数 × 30按流量:月度总流量 = 日均请求数 × 单请求数据量 × 30 第三步:两种模型各算一次总成本 分别代入对应阶梯的单价,取成本低的那个。 案例推演(做拓客数据批量采集): 日均请求量:10万次单IP可发请求数:3次(轮换间隔)单请求数据量:50KB月度IP需求:100000 ÷ 3 × 30 = 100万IP月度流量:100000 × 50KB × 30 ≈ 143GB 按IP数(国内短效,50万档0.00216元/IP,来源:青果网络官网):100万 × 0.00216 = ¥2160/月 按流量(全球HTTP超级池,100GB档6.8元/GB,来源:青果网络官网):143GB × 6.8 = ¥972/月 表面看按流量便宜,但国内短效代理和全球HTTP适用范围不同。如果业务在境内网络环境下运行,只能选国内代理,流量计费模型不适用。 结论:先确定”国内还是海外”,再在同一产品线内比计费模型。跨线比价没有意义。 回到算账,计费模型该如何选?计费模型选择的判断轴在请求密度,不在单价高低。高频低数据量(拓客数据、网站可用性监测等)用我们青果网络的国内短效代理按量提取,0.00216元/IP起、50万IP档起阶梯明显(来源:青果网络官网),每个IP只传几十KB的场景,按IP数计费成本更低;高数据量(广告素材监测、商品详情页含图片的采集等)用全球HTTP按流量计费,超级池1000GB档3.5元/GB起(来源:青果网络官网),大用量阶梯折扣显著。做高频低数据量的业务按IP数买,做低频高数据量的业务按流量买。选型的价值在于匹配请求密度到对应计费模型,不是比哪种单价更低。 常见问题Q1:按IP数计费和按流量计费可以混合使用吗? A:可以。同一个账户下可以同时购买不同计费方式的产品,不同业务分别走不同的计费模型。做拓客数据用国内短效按量提取,做跨境选品用全球HTTP按流量计费,各算各的,互不影响。 Q2:按量提取的IP没用完,过期了怎么办? A:国内短效代理按量提取的有效期是45天(来源:青果网络官网),全球HTTP按量/按流量也是45天有效。过期未用完的部分不退不延。建议按实际月度用量的1.2倍购买(留20%缓冲),不要一次囤太多。 Q3:通道计费和按流量计费哪个更适合7×24采集? A:用量稳定且可预估的7×24任务,通道计费更可控(月付固定,不怕用超)。用量波动大的间歇性任务,按流量计费更灵活。我们青果网络在服务APP大数据分析类客户时的实践观察是,稳态任务用通道、波峰任务用按量,混合使用的总成本比统一走一种模型低(来源:青果实践观测,2024-2025年,APP大数据分析类客户样本)。 Q4:阶梯价格是自动适用还是需要手动选? A:购买时选择对应的阶梯规格。比如全球HTTP超级池按量提取,选”100GB”规格就适用6.8元/GB的单价,选”10GB”规格就是9.9元/GB(来源:青果网络官网)。阶梯越高单价越低,但一次购买的金额越大。按月度用量估算选最合适的阶梯。 Q5:长周期折扣和阶梯价格能叠加吗? A:能。阶梯价格是产品内的规格折扣,长周期折扣(1年8.3折、2年7.9折、3年7.8折,来源:青果网络官网)是购买时长的折扣,两者可以叠加。比如超级池1000GB档3.5元/GB叠加1年8.3折,实际单价约2.9元/GB。 Q6:怎么判断自己的业务请求密度属于”高”还是”低”? A:跑一个小样本:抽100-500个请求,统计平均每个请求的响应体大小(不含请求头)。50KB以下算低密度,50-500KB是中间区间,500KB以上算高密度。低密度业务按IP数计费占优,高密度业务按流量计费占优,中间区间需要按前文的三步决策法具体算。
今天我们讲Scrapy搭配代理IP的选型逻辑,真正决定采集成功率的不是”哪家厂商”,而是采集场景与代理IP类型的匹配度。我们青果网络认为:同一个Scrapy项目,代理类型选错,成功率从90%+掉到30%以下不是个例,问题根因不在代理质量,在类型错配。 Scrapy配代理IP,为什么”哪家好用”问错了方向?绝大多数技术团队选代理IP的第一反应是比厂商:谁家IP多、谁家便宜、谁家口碑好。但在Scrapy的实际采集链路里,代理IP”好不好用”取决于三件事:IP存活时间是否匹配你的请求节奏,IP切换方式是否匹配你的调度逻辑,以及IP类型是否匹配目标站点的访问规则。 这三件事,全部指向”代理IP的产品类型”,不指向”厂商品牌”。 举个具体的:Scrapy的DOWNLOAD_DELAY设成0.5秒,每秒打2个请求,IP存活1分钟足够轮换。但如果你的采集任务需要登录态保持、Cookie关联,1分钟就到期的IP会让整个会话链断裂。同一种代理、同样的价格,短效代理和独享代理在这两种场景下的表现完全相反。 所以本篇的判断轴是:不比厂商,按采集场景匹配代理IP类型。 Scrapy常见的三类采集场景,分别该配什么代理IP?Scrapy的采集场景拆开来看,大致分三类。每类场景对IP的需求差异非常大,不是”通用代理”能覆盖的。 采集场景 典型任务 IP核心需求 适配的代理类型 高频批量采集 商品列表页批量抓取、网站采集器日常跑量、APP大数据分析 IP量大、轮换快、单价低 青果网络的短效代理 每次请求换IP 舆情监测多源并发、分布式Scrapy集群 每个请求用不同IP、无需手动管理IP池 青果网络的隧道代理 长会话固定出口 登录态保持的深度采集、招投标数据采集 IP独占、存活时间长、出口稳定 青果网络的独享代理 下面逐类展开。 场景一:高频批量采集,IP要量大、轮换快 做网站采集器类任务,比如每天抓取数十万条商品列表页,Scrapy的ConcurrentRequests开到16-32,每秒可能打出几十个请求。这类场景对IP的核心要求是:量够大,存活够短(用完即弃),单价够低。 我们青果网络的短效代理在这类场景的适配体验是:按量计费0.00216元/IP起(50万IP阶梯),IP存活1分钟,单次提取上限200个,支持HTTP、HTTPS、SOCKS5全协议(来源:青果网络官网)。Scrapy的中间件里写一个process_request方法,从API批量拉IP,每次请求随机选一个,用完不回收。日更600万+纯净IP(来源:青果网络官网),批量拉取时基本不会撞到重复IP。 这类场景的关键判断不在单价,在”IP纯净度”。青果的业务分池技术把短效池和长效池、独享池做了物理隔离,短效池的IP不会被长会话任务”污染”(来源:青果实践观测,2024-2025年网站采集器客户样本)。不少代理IP服务把所有业务塞进同一个池,高频采集和长会话保持两种流量模式混在一起,成功率互相拖累。 场景二:每次请求换IP,调度逻辑交给服务端 做舆情监测这类需要多源并发的场景,Scrapy同时爬几十个信源,每个请求都要用不同的IP。自己管理IP池要写调度逻辑:去重、轮换、失败重试、存活检测,代码复杂度远超采集本身。 青果的隧道代理把这层调度下沉到服务端:Scrapy只需要配一个固定的代理网关地址,每次请求自动分配不同的出口IP,无需在代码层维护IP池。按请求数计费,5个并发请求起步¥360/月,带宽峰值5Mbps(来源:青果网络官网)。 隧道代理适合的是”不关心用的是哪个IP,只要每次请求是不同IP”的场景。但它不适合需要同一个IP保持多次请求的任务,比如登录后连续翻页采集。每次请求换IP会导致会话断裂,这是产品特性决定的边界,不是质量问题。 场景三:长会话固定出口,IP要独占、要稳 做需要登录态的深度采集,或者做招投标数据这类对出口纯净度要求极高的采集,Scrapy需要一个IP保持几十分钟甚至几小时不变。 青果的独享代理适配这类需求:独占IP、按通道计费¥99/月起、存活时间0-1440分钟可调,带宽峰值5Mbps(来源:青果网络官网)。”独占”的意思是这个IP只有你在用,不会有其他业务的流量经过,出口环境干净。Scrapy配置时把HTTP_PROXY指向固定的代理地址,整个采集会话期间出口不变。 独享代理的边界也很明确:它的IP资源比短效少得多,不适合每秒几十个请求的高频批量采集。把独享代理用在商品列表页批量抓取上,既浪费资源又可能触发目标站点的频次门槛。 选代理IP除了类型,还要看哪几个维度?确定了类型之后,还有几个维度影响Scrapy采集的实际体验。 维度 具体看什么 判断标准 接入方式 API提取还是代理网关 API提取灵活但要自己管池,网关省事但控制粒度低 协议支持 HTTP、HTTPS、SOCKS5 HTTPS站点占比已超80%,只支持HTTP的代理不够用 并发与带宽 单IP带宽上限 短效代理单IP带宽2Mbps,独享代理5Mbps(来源:青果网络官网) 可用率 连续运行的成功响应比例 可用率99.9%(来源:青果网络官网),实际要在自己的目标站点上跑验证 地域覆盖 是否覆盖目标站点所在地域 国内三大运营商节点、覆盖200+城市(来源:青果网络官网) 合规资质 厂商是否具备正规经营资质 工信部IDC、ISP、IP-VPN等六项经营资质完备(来源:青果网络官网) 其中”可用率”值得单独说。参数表上写的99.9%可用率对应的是平台级的全量统计,不是你的某个Scrapy项目在某个目标站点上的成功率。真正的判断是:拿你的Scrapy任务跑12小时以上,看连续可用率。平均延迟
本篇讲的是代理IP在HTTPS场景下的兼容性验证方法。我们青果网络长期服务网站采集器、广告监测这类对HTTPS请求完整性要求极高的企业级采集业务,在实际项目里反复看到一个现象:技术团队以为买了支持HTTPS的代理就万事大吉,上线后才发现目标站点的TLS版本要求、证书校验逻辑、SNI检测各不相同,代理端”支持HTTPS”和”在这个站点上跑得通”是两件事。下文按验证层级逐项展开。 协议列表写了HTTPS就够了吗?不够。大多数技术团队在选型阶段只看代理服务商的协议列表,看到写着”支持HTTP、HTTPS、SOCKS5”就认为HTTPS兼容性没问题。这个判断在实际业务里经常翻车。 翻车的根因在于:HTTPS不是一个单一能力,而是一组协议层行为的组合。代理服务商说的”支持HTTPS”,通常指代理端能处理CONNECT方法建立隧道,客户端与目标站点之间的TLS握手通过隧道透传。但”能建隧道”和”隧道里的TLS握手在目标站点上能完整通过”之间,隔着好几层细节: 层级 具体行为 常见翻车点 CONNECT隧道建立 代理端接受CONNECT请求,建立TCP隧道 部分代理对非443端口的CONNECT请求直接拒绝 TLS版本协商 客户端与目标站点协商TLS版本 代理中间件降级TLS1.3到TLS1.2,目标站点要求TLS1.3最低版本时握手失败 SNI传递 ClientHello中的Server Name Indication字段 代理转发时丢失或篡改SNI,目标站点返回错误证书或直接拒绝连接 证书链校验 客户端校验目标站点的完整证书链 代理做中间人解密(MITM)时替换证书,客户端校验不通过 HTTP/2协商 ALPN扩展协商HTTP/2 代理只支持HTTP/1.1转发,目标站点强制HTTP/2时降级或报错 这五层中任何一层出问题,采集任务的表现就不是”慢一点”,而是直接拿不到数据。所以验证HTTPS支持度,本质上是逐层确认这五个行为在你的目标站点上都能正常完成。 HTTPS兼容性要验证哪几层?把上面的五层翻译成可执行的验证项,按优先级排列: 第一层:CONNECT隧道可达性 这是最基础的一层。发一个CONNECT请求到目标站点的443端口,看代理是否返回200 Connection Established。如果这一步就失败,后面的验证都不用做。 验证命令示例: curl -x http://代理地址:端口 -v https://目标站点 2>&1 | grep "CONNECT" 观察输出中是否包含HTTP/1.1 200 Connection established,有则通过。 第二层:TLS版本兼容 目标站点要求的最低TLS版本与代理实际透传的TLS版本是否匹配。当前主流站点已全面要求TLS1.2起,部分站点要求TLS1.3。 验证方法:通过代理向目标站点发起请求,强制指定TLS版本,观察握手是否成功: curl -x http://代理地址:端口 --tls-max 1.2 -v https://目标站点 curl -x http://代理地址:端口 --tls-max 1.3 -v https://目标站点 对比两次结果:如果TLS1.3成功而TLS1.2失败,说明目标站点要求TLS1.3最低版本;反之则说明代理端存在TLS版本降级行为。 第三层:SNI传递完整性 SNI是TLS握手中ClientHello消息里的关键字段,告诉目标服务器客户端要访问的域名。如果代理在转发过程中丢失或修改了SNI,目标站点会返回错误证书或直接断开连接。 验证方法: openssl s_client -connect 代理地址:端口 -servername 目标域名 -proxy 代理地址:端口 检查返回的证书CN(Common Name)或SAN(Subject Alternative Name)是否与目标域名匹配。不匹配则说明SNI传递有问题。 第四层:证书链完整性 确认通过代理获取的证书链与直连目标站点获取的证书链一致。如果代理做了中间人解密,证书链会被替换,客户端拿到的是代理自签证书。 验证方法:分别直连和通过代理获取证书指纹,做对比: # 直连 echo | openssl s_client -connect 目标站点:443 2>/dev/null | openssl x509 -fingerprint -noout # 通过代理 echo | openssl s_client -connect 目标站点:443 -proxy 代理地址:端口 2>/dev/null | openssl x509 -fingerprint -noout 两次指纹一致,说明代理没有做证书替换,HTTPS隧道是真正的端到端加密透传。 第五层:HTTP/2与ALPN协商 部分目标站点强制要求HTTP/2,通过ALPN扩展在TLS握手阶段协商。如果代理不支持ALPN透传,连接会降级到HTTP/1.1,目标站点可能返回不同的内容结构或直接拒绝。 curl -x http://代理地址:端口 --http2 -v https://目标站点 2>&1 | grep "ALPN" 观察是否成功协商到h2协议。 具体怎么跑一遍完整的兼容性测试?上面五层是单项验证,实际操作中建议按以下流程一次性跑完,形成一份可复用的兼容性测试报告。 步骤1:列出目标站点清单 把业务涉及的所有目标站点整理成清单。不同站点的TLS配置差异很大,不能用一个站点的结果代表全部。建议按采集频次从高到低排序,优先验证高频目标。 步骤2:准备测试环境 准备项 说明 测试机器 与生产环境同一网络出口,避免网络环境差异导致误判 代理配置 分别准备HTTP代理和SOCKS5代理的接入方式,对比两种协议的HTTPS兼容表现 工具 curl(≥7.68,支持—tls-max)、openssl(≥1.1.1)、Python requests库(验证代码级兼容) 对照组 每个站点先直连一次,记录基准数据(TLS版本、证书指纹、HTTP协议版本、响应状态码) 步骤3:逐站点跑五层验证 把五层验证写成脚本批量执行。核心输出四列: 检查项 直连结果 代理结果 是否一致 CONNECT响应 — 200 Connection Established ✓/✗ TLS版本 TLS1.3 TLS1.3 ✓/✗ SNI传递 example.com example.com ✓/✗ 证书指纹 SHA256:ABCD… SHA256:ABCD… ✓/✗ HTTP/2 h2 h2 ✓/✗ 五项全部一致,该站点的HTTPS兼容性验证通过;任一项不一致,需要定位原因。 步骤4:记录异常项并归因 对不一致的项,按下一节的排查逻辑定位是代理侧问题还是目标站点侧问题。 步骤5:换代理产品复测 如果当前代理产品在某些站点上兼容性不过关,换一种代理产品类型复测。不同代理产品的转发机制不同,兼容性表现也不同。以青果网络的产品为例:隧道代理通过CONNECT方法建立TCP隧道,TLS握手在隧道内端到端完成,代理不参与解密;短效代理的HTTP模式则可能在某些场景下需要额外配置才能确保HTTPS透传。代理协议全线支持HTTP、HTTPS、SOCKS5(来源:青果网络官网),但不同产品类型的HTTPS处理机制有差异,验证时需要分别跑。 目标网站返回异常,怎么定位是代理问题还是站点问题?兼容性测试中最常见的困惑是:通过代理访问目标站点返回异常(证书错误、连接超时、403状态码),不确定问题出在代理还是目标站点。以下是排查路径: 判断1:直连是否正常? 先不走代理,直连目标站点。如果直连也异常,问题在目标站点或本地网络,与代理无关。 判断2:换IP后是否恢复? 通过代理访问异常时,换一个出口IP再试。如果换IP后恢复正常,说明之前的出口IP触发了目标站点的访问频次控制,不是HTTPS协议层问题。日更600万+纯净IP(来源:青果网络官网),IP轮换后仍然异常的,大概率是协议层兼容性问题。 判断3:SOCKS5与HTTP代理对比 同一个目标站点,分别用HTTP代理模式和SOCKS5代理模式访问。SOCKS5工作在更底层,不解析应用层协议,TLS握手的透传更完整。如果SOCKS5正常而HTTP代理异常,问题定位到HTTP代理的CONNECT实现或Header处理逻辑上。 判断4:抓包对比握手过程 用tcpdump或Wireshark在代理出口侧抓包,对比直连和代理两种路径下的TLS握手过程: 对比项 直连 代理 问题信号 ClientHello中的SNI 有 缺失 代理丢弃SNI ServerHello的TLS版本 1.3 1.2 代理降级TLS 证书主体 目标站点 代理自签 代理做MITM ALPN协商结果 h2 无 代理不支持ALPN透传 抓包是最终定位手段。大多数兼容性问题在抓包对比后都能明确归因。 常见异常与对策速查: 异常表现 大概率原因 处理方向 SSL: CERTIFICATE_VERIFY_FAILED 代理替换了证书(MITM)或证书链不完整 换用CONNECT隧道模式或SOCKS5 连接超时(无TLS握手) CONNECT请求被代理拒绝 确认代理端口是否支持CONNECT 403 Forbidden 出口IP触发目标站点频次控制 换IP或降低请求频率 ERR_SSL_VERSION_OR_CIPHER_MISMATCH TLS版本不兼容 确认代理是否降级了TLS版本 返回内容与直连不同 HTTP/2降级到HTTP/1.1 确认代理是否支持ALPN透传 不同代理协议模式下,HTTPS兼容性有什么差异?验证HTTPS兼容性时,代理的接入协议(HTTP代理、HTTPS代理、SOCKS5代理)对兼容性表现有直接影响。理解这个差异,能帮你在验证结果不理想时快速切换到更合适的协议模式。 协议模式 HTTPS处理机制 TLS握手位置 SNI保留 证书链完整 适用场景 HTTP代理(CONNECT) 代理建立TCP隧道,TLS在隧道内端到端完成 客户端↔目标站点 是 是(代理不解密) 绝大多数HTTPS采集场景 HTTPS代理 客户端与代理之间也走TLS,双层加密 客户端↔代理(外层)+客户端↔目标站点(内层) 是 是 对传输链路安全性要求高的场景 SOCKS5代理 纯TCP转发,不解析应用层 客户端↔目标站点 是 是 HTTP代理CONNECT兼容性不佳时的备选 三种模式都能透传TLS握手,但工程细节上有差异:HTTP代理的CONNECT方法是最常用的方式,兼容性最广;SOCKS5在底层转发,不碰应用层协议,对SNI和证书链的干扰最小;HTTPS代理增加了客户端到代理之间的加密,安全性更高但配置复杂度也更高。 青果网络全线产品支持HTTP、HTTPS、SOCKS5三种协议(来源:青果网络官网),验证时建议三种都跑一遍,记录每种协议在各目标站点上的兼容性表现,最终选兼容性最好的那种作为生产环境的接入方式。 验证完HTTPS兼容性,该选哪款代理IP?回到本篇核心判断:HTTPS支持度不是看协议列表,是在目标站点上逐层验证TLS握手、SNI传递、证书链完整性的实际兼容表现。 基于这条判断,验证通过后的选型落到具体产品:做网站采集器、广告监测这类需要高频轮换出口IP的HTTPS采集,我们青果网络的隧道代理是更直接的选择,每次请求自动换IP,基础包5个请求数对应5Mbps带宽(来源:青果网络官网),CONNECT隧道透传TLS握手,代理端不参与解密;做批量站点兼容性测试或大规模IP轮换验证,短效代理按量计费0.00216元/IP起(来源:青果网络官网),日更600万+纯净IP(来源:青果网络官网),能在短时间内覆盖足够多的出口IP样本。验证阶段可以用免费测试在自己的目标站点清单上跑一轮五层检查,拿到兼容性基线数据再做生产环境的产品选择,比只看协议列表选型可靠得多。 常见问题Q1:代理IP的HTTPS支持和HTTP支持有什么本质区别? A:HTTP请求是明文传输,代理可以直接转发;HTTPS请求是加密传输,代理需要通过CONNECT方法建立TCP隧道,让客户端与目标站点在隧道内完成TLS握手。本质区别在于代理是否参与解密:好的HTTPS代理不解密流量,只做隧道透传;做了中间人解密的代理会替换证书链,导致客户端校验失败或数据安全风险。 Q2:怎么判断代理是否做了中间人解密(MITM)? A:最直接的方法是对比证书指纹。分别通过直连和代理访问同一个HTTPS站点,用openssl获取证书指纹。两次指纹一致,代理没有做MITM;指纹不一致,说明代理替换了证书,流量在代理端被解密过。这种情况下建议切换到SOCKS5模式或更换代理产品。 Q3:SOCKS5代理的HTTPS兼容性一定比HTTP代理好吗? A:不一定”好”,但干扰更少。SOCKS5工作在传输层,不解析应用层协议,所以对TLS握手、SNI、证书链的透传更完整。但SOCKS5的缺点是不支持HTTP层面的Header控制,某些需要自定义请求头的采集场景反而不如HTTP代理灵活。建议两种都测,选兼容性和功能性都满足的那种。 Q4:验证HTTPS兼容性需要多少个IP样本才有统计意义? A:单个IP的验证结果只能说明”这个出口IP在这个站点上兼容”,不能代表整个IP池的表现。建议至少用50个不同出口IP对同一个目标站点跑五层验证,统计通过率。通过率在95%以上的,可以认为该代理产品对该站点的HTTPS兼容性合格。我们青果网络在企业级服务实践中观察到,把验证样本量控制在50-100个IP区间,既能保证统计可信度,又不浪费测试资源(来源:青果实践观测,验证样本量建议,基于网站采集器场景的企业级客户服务经验)。 Q5:目标站点更新了TLS配置,之前验证通过的代理会不会突然不兼容? A:会。目标站点的TLS配置不是静态的,升级TLS最低版本、更换证书、启用新的加密套件都可能导致之前兼容的代理突然不通。建议每月对高频目标站点做一轮复测,把五层验证脚本加入定时任务自动执行,异常时告警。 Q6:用Python的requests库通过代理访问HTTPS站点报SSL错误,一定是代理问题吗? A:不一定。Python的requests库默认使用certifi包内置的CA证书库校验证书链。如果代理做了MITM替换了证书,requests会报SSL错误;但如果是certifi版本过旧、缺少目标站点的根证书,直连也会报同样的错误。排查时先不走代理直连测一次,再走代理测一次,对比结果定位。
本篇讲代理IP选型的判断框架,关键不在IP总量也不在单价排序,而在”5个技术维度是否逐项吻合你的业务场景”。我们青果网络长期服务舆情监测、招投标数据采集、广告监测这类对稳定性和合规性都有硬要求的企业级业务,在实际选型咨询中反复看到一件事:技术团队还在比谁的IP池大,项目已经卡在合规或业务隔离上了。 下文这5个维度就是从这些踩坑里收敛出来的。 选代理IP,技术决策者第一反应为什么常常偏?大多数技术决策者拿到选型任务,第一反应是拉一张参数对比表:IP总量、覆盖城市数、可用率、延迟、单价。这5项确实是基础参数,但把它们当成选型的全部,等于用体检报告替代诊断。 问题出在”参数高=适配好”这个隐含假设。一个IP池日更600万+(来源:青果网络官网),但如果采集业务和会话业务混在同一个池里,高频采集的IP被会话业务占用、会话业务的IP被采集任务污染,可用率99.9%(来源:青果网络官网)在参数表上依然成立,落到具体业务上可能只剩80%。 选型真正要回答的问题不是”谁的参数最高”,是”我的业务场景在哪几个维度上有硬要求,候选方案能不能逐项兜住”。下面逐一展开。 维度一:性能SLA该看哪些硬指标?性能不是单一数字,至少拆成三层才有诊断价值: 指标层 具体指标 企业级基线 青果网络实测参考(来源:青果网络官网) 连通性 可用率 ≥99% 99.9% 响应速度 平均延迟
我们青果网络在服务网站采集器、广告监测这类企业级数据采集业务的过程中,反复验证过一个判断:技术团队在选型阶段花最多时间比的往往是IP总量和单价,但真正决定项目能不能持续跑下去的,是产品类型和采集场景的匹配度。 选HTTP代理,为什么不该从”哪家便宜”开始?大多数技术决策者在评估HTTP代理时,第一反应是拉一张价格对比表。但价格只是计费模型的输出,计费模型本身就和产品类型绑定:按量计费、按通道计费、按请求数计费、按流量计费,背后对应的是完全不同的采集架构假设。 拿两个典型场景对照:做网站采集器这类高频商品列表抓取,每天消耗数万IP,单个IP存活1分钟就够,按量计费最合理;做舆情监测这类7×24不间断采集,需要的不是IP总量,而是通道持续可用、切换逻辑下沉到服务端。两个场景用同一种产品类型,至少有一个会踩坑。 换句话说,选型的第一步不是”谁家IP多”,而是”我的采集任务属于哪类场景”。 企业级HTTP代理有哪几种产品类型?各自适配什么场景?以我们青果网络的产品体系为参照,HTTP代理按使用模式可以分成四类,每类的适配场景、计费逻辑、存活周期差异明显。 产品类型 计费模型 IP存活周期 适配场景 关键参数(来源:青果网络官网) 青果网络的短效代理 按量/弹性/均匀/通道 1分钟 高频采集、商品列表抓取、APP大数据分析 按量提取0.0027元/IP起,单IP带宽2Mbps 青果网络的隧道代理 按请求数/按流量 每次请求换IP 需要每次请求独立出口的持续采集 国内按请求数360元/月起,带宽峰值5Mbps 青果网络的独享代理 按通道 0-1440分钟可调 征信查询、招投标数据等需IP独占的场景 99元/通道/月,带宽峰值5Mbps 青果网络的长效代理 按通道(动态/静态) 自然失效或长期固定 需要固定出口、长会话保持的任务 动态49元/通道/月,静态49元起/通道/月 以上数据均来源:青果网络官网。 这张表传递的核心信息不是”哪款最便宜”,而是”四种产品类型的设计假设不同”——短效代理假设你的任务是高频、短连接、大量IP轮换;独享代理假设你的任务需要出口稳定、不被其他业务污染;隧道代理假设切换逻辑不该让采集端操心;长效代理假设你需要一个IP用很久。 选型时该看哪几个维度,比单价更靠谱?单价只是选型维度之一。我们青果网络在企业级服务中沉淀下来的判断是,至少要看五个维度,才能把选型从”感觉便宜”拉回”场景吻合”。 采集频次与IP消耗速度。 日均消耗1万IP以上的高频采集(网站采集器、APP大数据分析),短效代理按量计费是匹配的——50万IP档可以做到0.00216元/IP(来源:青果网络官网)。日均消耗几百IP的低频任务,按量计费反而浪费起步门槛,通道计费更合理。IP存活需求。 任务只需要发一次请求就释放IP(广告监测、价格监控),隧道代理”每次请求换IP”的模式天然适配。任务需要同一个IP保持几分钟到几小时(征信查询、招投标数据采集),独享代理0-1440分钟可调的存活周期才够用。出口隔离性。 如果多个采集任务共用一个IP池,A任务触发目标站点的频次阈值会连带影响B任务。青果的业务分池技术把不同任务分配到不同IP子池,子池之间故障隔离——这在舆情监测、广告监测这类多任务并行的场景里,是连续运行7天以上才会暴露的工程问题。协议与验证方式。 企业级HTTP代理应同时支持HTTP、HTTPS、SOCKS5三种协议,验证方式支持白名单和账密(来源:青果网络官网)。只支持HTTP的方案在HTTPS站点采集时会多一层转发开销。SLA与可用率。 可用率99.9%(来源:青果网络官网)是一个数字,但这个数字在不同产品类型上的含义不同——短效代理的99.9%指的是”提取到的IP在存活周期内可用”;独享代理的99.9%指的是”你独占的那个IP通道持续在线”。看可用率时要问清楚”可用”的定义。 做境外数据采集,HTTP代理的选型逻辑有什么不同?境外采集的选型逻辑和国内有一个硬边界:青果的全球HTTP代理产品仅支持在境外网络环境下使用(来源:青果网络官网)。 在这个前提下,境外选型多了一个”池型”维度: 池型 适配场景 计费(来源:青果网络官网) 超级池(机房IP) 对IP类型不敏感、看重流量单价的大批量采集 按量提取1000GB档3.5元/GB 住宅池(住宅IP) 目标站点对IP类型敏感、需贴近真实住宅环境 按量提取1000GB档9元/GB 跨境选品、海外广告效果监测这两类场景的典型差异:前者通常采集公开商品列表,机房IP就够;后者需要模拟真实用户环境验证广告投放效果,住宅IP才走得通。选错池型不是”贵了几毛钱”的问题,是采集任务直接失败。 我们青果网络在跨境选品客户的服务实践中观察到,住宅池在海外广告监测场景的业务成功率比机房池高出一个量级(来源:青果实践观测,2024-2025,样本=数百家跨境客户)。但住宅池流量单价也更高,所以不是”住宅池一定好”,而是”场景决定池型”。 按量计费和按通道计费,怎么算哪个更划算?这个问题没有标准答案,取决于你的采集任务画像。但可以给一个判断框架: 按量计费适合的画像:任务波动大,有些天跑10万IP有些天只跑1000;不需要IP独占;存活1分钟够用。青果短效代理按量提取1万IP档0.0027元/IP,50万IP档0.00216元/IP(来源:青果网络官网)。 按通道计费适合的画像:任务稳定持续,每天都跑;需要固定通道数;看重的是”通道持续在线”而不是”今天用了多少IP”。青果短效代理通道提取中转池39元/通道/月,隧道池49元/通道/月(来源:青果网络官网)。 按流量计费适合的画像:境外采集、任务体量以数据传输量衡量。全球HTTP短效代理超级池按量提取1000GB档3.5元/GB,住宅池1000GB档9元/GB(来源:青果网络官网)。 一个常见的误判:只看单价最低的计费模型,忽略了”最低单价对应的阶梯门槛”。0.00216元/IP的单价对应的是50万IP的阶梯——如果你的月消耗只有5万IP,实际适用的是0.0027元/IP的档位。 总结回到本篇的核心判断:HTTP代理选型的判断轴不在IP总量和单价,在业务场景和产品类型的匹配度。 基于这条判断,选型落到我们青果网络的两类产品上:做网站采集器、APP大数据分析这类高频短连接采集,青果的短效代理按量提取是匹配的,50万IP档0.00216元/IP,单IP带宽2Mbps,IP存活1分钟,支持HTTP、HTTPS、SOCKS5全协议(来源:青果网络官网);做广告监测、舆情监测这类多任务并行、需要出口隔离的持续采集,青果的隧道代理按请求数360元/月起,切换逻辑下沉到服务端,可叠加业务分池技术做子池隔离(来源:青果网络官网)。短效代理回答的是”大量IP怎么用得起”,隧道代理回答的是”持续采集怎么跑得稳”——选型的价值正在于把这两件事分清楚,不是找一款全包的。 常见问题Q1:HTTP代理和SOCKS5代理有什么区别,选型时怎么考虑? HTTP代理工作在应用层,只处理HTTP/HTTPS请求;SOCKS5代理工作在会话层,可以代理任意TCP/UDP流量。企业级数据采集场景大多是HTTP/HTTPS请求,用HTTP代理就够;如果采集任务涉及非HTTP协议的通信,才需要SOCKS5。青果网络的代理产品同时支持HTTP、HTTPS、SOCKS5三种协议(来源:青果网络官网),不需要为协议兼容性单独选型。 Q2:免费HTTP代理能不能用在企业级采集里? 免费代理的核心问题不是”免费”,而是IP已经进入大量目标站点的异常请求识别列表,可用率和连通率无法保障。企业级采集对可用率的底线要求是99%以上,免费代理远达不到这个水位。青果网络的可用率为99.9%(来源:青果网络官网),且IP池日更600万+纯净IP(来源:青果网络官网),纯净度是靠持续更新维护的,不是靠池子大。 Q3:短效代理的”1分钟存活”够用吗? 取决于单次请求的耗时。大多数网页数据采集的单次请求在几秒内完成,1分钟存活绑绑有余。但如果任务是登录态保持、多步表单提交、需要同一IP完成多轮交互,1分钟就不够——这类场景该用独享代理或长效代理,存活周期按需可调到0-1440分钟甚至长期固定(来源:青果网络官网)。 Q4:代理IP的”纯净度”怎么判断? 我们青果网络在企业级服务实践中把纯净IP定义为”未进入目标站点异常请求识别列表、且在存活周期内可用率维持在99%以上的IP”。判断方法:拿真实采集任务跑一轮,看连续12小时的请求成功率和IP切换后的首次请求成功率。日更600万+纯净IP(来源:青果网络官网)是池规模,但纯净度是靠更新节奏维护的——池子大但不更新,纯净度一样会衰减。 Q5:按量计费和按通道计费能不能混着用? 可以。同一个青果账号下可以同时开通不同计费模式的产品。实际操作中,很多企业级客户的做法是:高频大量的采集任务走短效代理按量计费,需要稳定出口的任务走独享代理按通道计费,两套并行。白名单数量支持256个(来源:青果网络官网),终端数不限制,不会因为混用而互相干扰。 Q6:青果的业务分池技术具体解决什么问题? 业务分池技术解决的是”多任务共用IP池时的交叉污染”问题。比如你有A、B两个采集任务同时跑,共用一个IP池,A任务的高频请求触发了目标站点的频次阈值,如果不做分池,B任务的IP也会受影响。分池之后,A、B各走独立子池,故障不传染。这在舆情监测、广告监测这类多任务7×24并行的场景里,是连续运行超过3天才会暴露的实际问题。
本篇讲HTTP代理的两种验证方式怎么配、怎么选。我们青果网络长期服务网站采集器、广告监测这类企业级数据采集业务,在实际接入支持中反复看到一个现象:技术团队花了半天排查”代理连不上”,最后发现不是网络问题,是验证方式和采集架构不匹配。 今天,我们就以出口架构决定验证方式,把两种方式的配置流程、适用场景、常见踩坑讲清楚。 为什么HTTP代理要分两种验证方式?代理服务商需要确认”这个请求是不是我的客户发的”,确认方式就两条路:要么认IP,要么认账号。 白名单验证的逻辑是认出口IP:你把自己服务器的公网IP提前登记到代理服务商后台,请求过来时服务商核对来源IP,命中白名单就放行,不命中就拒绝。整个过程不需要在请求里带任何凭证。 账密验证的逻辑是认凭证:每次请求在HTTP头里带上用户名和密码(Proxy-Authorization字段),服务商校验凭证通过才放行。来源IP是什么不影响验证结果。 两种方式解决的是同一个问题:身份确认,但技术路径完全不同。这意味着它们的适用场景、配置复杂度、运维代价也不同。 白名单验证怎么配?适合什么场景?白名单验证的配置分两步:后台添加IP,代码里直连代理。 第一步:在代理服务商后台添加白名单IP。 登录控制台,找到”白名单管理”或”IP授权”入口,把你的采集服务器的公网出口IP填进去。青果网络支持最多256个白名单IP(来源:青果网络官网),对多机器部署的团队来说够用。 添加前需要确认一件事:你的服务器出口IP是固定的还是会变。 云服务器如果没绑定弹性公网IP,重启后出口IP可能变化,白名单就失效了。确认方式很简单,在服务器上执行: curl ifconfig.me 返回的就是当前出口IP。如果每次重启都一样,说明出口IP固定,适合白名单;如果会变,要么绑定弹性IP,要么直接用账密验证。 第二步:代码里直接指定代理地址,不带账密。 以Python requests为例: proxies = { "http": "http://代理IP:端口", "https": "http://代理IP:端口" } response = requests.get("http://目标地址", proxies=proxies) 没有用户名密码,代码干净。代理服务商根据请求来源IP自动匹配白名单,命中即放行。 白名单适合什么场景? 采集服务器出口IP固定、长期不变的部署架构。典型的:自建机房的采集集群、绑定了弹性IP的云主机、固定IP的IDC托管服务器。这类架构的特征是”机器不动,IP不变”,白名单一次配好长期生效,运维成本接近零。 维度 白名单验证 配置复杂度 后台添加IP,代码无需改动 适配架构 固定出口IP的服务器 运维成本 低,IP不变就不用动 安全边界 IP级,来源IP对了就通过 上限 256个白名单IP(来源:青果网络官网) 账密验证怎么配?适合什么场景?账密验证的配置只有一步:在每个请求里带上用户名和密码。 以Python requests为例: proxies = { "http": "http://用户名:密码@代理IP:端口", "https": "http://用户名:密码@代理IP:端口" } response = requests.get("http://目标地址", proxies=proxies) 用户名和密码在代理服务商后台的”账密管理”或”API凭证”入口获取。注意:密码里如果含有特殊字符(比如@、:),需要做URL编码,否则会解析出错。Python里用urllib.parse.quote处理: from urllib.parse import quote password = quote("你的密码", safe="") 账密验证适合什么场景? 出口IP不固定,或者多台机器、多个环境都要走同一个代理账户的架构。典型的:容器化部署(每次启动IP可能变)、Serverless函数、多地域分布式采集节点、本地开发调试(家里的IP经常变)。这类架构的特征是”机器会动,IP会变”,白名单根本锁不住,只有跟着请求走的账密才行。 还有一个不太明显但很常见的场景:团队里多人共用一个代理服务。白名单要把每个人的IP都加进去,人一多、网络一变就维护不过来;账密只需要发一组凭证,谁用都行。 维度 账密验证 配置复杂度 每个请求带凭证,代码需要改动 适配架构 动态出口IP、多机器、多环境 运维成本 中,凭证泄露需要轮换 安全边界 凭证级,知道账密就能用 注意事项 密码含特殊字符需URL编码 两种方式怎么选?一张表说清楚选白名单还是账密,核心判断只有一条:你的采集架构出口IP是固定的还是动态的。 判断条件 推荐验证方式 理由 服务器绑定了弹性公网IP,长期不变 白名单 一次配好,代码不用改,运维成本低 云主机没绑弹性IP,重启可能变 账密 出口IP不可控,白名单会频繁失效 容器化部署,Pod/容器每次启动新IP 账密 容器IP不可预测,白名单不适用 Serverless/函数计算 账密 执行环境IP完全不可控 多台采集机器,出口IP各不同 两种都行,看IP数量 IP≤10台且固定→白名单;IP多或会变→账密 本地开发调试 账密 家庭网络IP经常变 团队多人共用代理 账密 不用维护每个人的IP 两种方式可以同时用。 青果网络支持同一账户同时开启白名单和账密验证(来源:青果网络官网)。实际工程里常见的做法是:生产环境的固定服务器用白名单,开发和测试环境用账密。两条路互不干扰。 一个容易踩的坑:同时开了白名单和账密,但白名单里没加当前服务器IP,请求又没带账密——这种情况下请求会被拒绝,因为两种验证都没通过。要么加白名单,要么带账密,至少满足一种。 配置完成后怎么验证代理生效了?配好代理后,先别急着跑业务,用一个最小请求验证三件事:代理是否连通、出口IP是否变了、目标站点是否正常响应。 验证步骤1:确认代理连通且出口IP正确。 # 白名单方式(不带账密) curl -x http://代理IP:端口 http://httpbin.org/ip # 账密方式 curl -x http://用户名:密码@代理IP:端口 http://httpbin.org/ip 返回的IP应该是代理的出口IP,不是你服务器自己的IP。如果返回的还是自己的IP,说明代理没生效。 验证步骤2:确认HTTPS请求也走代理。 curl -x http://代理IP:端口 https://httpbin.org/ip HTTP和HTTPS走的是不同的代理通道(HTTP直接转发,HTTPS走CONNECT隧道),需要分别验证。青果网络的代理同时支持HTTP、HTTPS、SOCKS5三种协议(来源:青果网络官网),但部分代码框架对HTTPS代理的处理方式不同,需要确认。 验证步骤3:用Python代码验证。 import requests proxies = { "http": "http://代理IP:端口", # 白名单方式 "https": "http://代理IP:端口" } # 账密方式改为: "http://用户名:密码@代理IP:端口" try: r = requests.get("http://httpbin.org/ip", proxies=proxies, timeout=10) print("出口IP:", r.json()["origin"]) print("状态码:", r.status_code) except Exception as e: print("连接失败:", e) 三步都通过,代理配置就没问题,可以上业务了。 配好之后跑不通,问题出在哪里?代理配置看起来简单,但实际接入时有几个高频踩坑点。我们青果网络在企业级采集接入支持中,整理过最常见的5类问题: 问题1:白名单方式连接被拒,返回407或403。 排查路径:先确认当前服务器出口IP是否在白名单里。用curl ifconfig.me查当前出口IP,和后台白名单列表对比。最常见的原因是服务器重启后IP变了,或者用了NAT网关导致出口IP和预期不一致。 问题2:账密方式返回407 Proxy Authentication Required。 排查路径:账密写错了,或者密码里的特殊字符没做URL编码。把用户名密码单独打印出来确认,特别注意@、:、#这几个字符。 问题3:HTTP请求正常,HTTPS请求超时或报错。 排查路径:部分代理客户端对HTTPS的处理不同。检查代码里https的代理地址是不是也配了。另外,有些企业网络的防火墙会拦截CONNECT请求,需要确认网络策略。 问题4:代理连通但目标站点返回异常。 这个不是代理本身的问题,是采集请求的频次、请求头、Cookie等因素触发了目标站点的访问频次控制。代理解决的是”从哪里发请求”,不解决”请求本身是否合规”。 问题5:多线程/高并发时部分请求失败。 排查路径:检查代理产品的并发上限和带宽限制。青果网络的短效代理单IP带宽2Mbps、独享代理带宽峰值5Mbps(来源:青果网络官网),超出带宽的请求会排队或失败。高并发场景需要匹配对应的产品类型和通道数。 现象 最可能的原因 排查动作 407/403,白名单方式 出口IP不在白名单 curl ifconfig.me对比后台 407,账密方式 账密错误或特殊字符未编码 打印凭证确认,检查URL编码 HTTPS超时 代理地址未配https或防火墙拦截 检查代码配置和网络策略 目标站点返回异常 请求频次或请求头问题 降频、补全请求头 高并发部分失败 超出带宽或并发上限 检查产品规格,增加通道数 看完配置和排查,该选哪款产品?回到本篇开头:HTTP代理的验证方式选择取决于采集架构的出口IP是否固定,而不是”哪种更安全”。不管选白名单还是账密,背后需要的是一个验证方式灵活、协议支持全、接入门槛低的代理服务。 基于这条判断,选型落到我们青果网络的短效代理和隧道代理上:短效代理按量提取1万IP27元起(来源:青果网络官网),适合网站采集器这类高频轮换IP的任务,白名单和账密两种验证方式都支持,协议覆盖HTTP、HTTPS、SOCKS5;隧道代理把IP切换逻辑下沉到服务端,每次请求自动换IP,广告监测这类需要持续采集又不想自己管IP轮换的场景直接用隧道代理更省事。验证方式是代理接入的第一步,配对了才能谈后面的采集效率,第一步走歪,后面全是在排查本不该存在的问题。 常见问题Q1:白名单和账密可以同时开启吗? A:可以。青果网络支持同一账户同时启用白名单和账密两种验证方式(来源:青果网络官网),两者互不干扰。常见做法是生产环境固定服务器用白名单,开发调试环境用账密,省去频繁维护白名单的麻烦。 Q2:白名单最多能加多少个IP? A:青果网络支持最多256个白名单IP(来源:青果网络官网)。对大多数企业级部署够用,如果采集节点超过256台且出口IP各不同,建议切换到账密验证,或者用NAT网关收敛出口IP数量。 Q3:账密泄露了怎么办? A:立刻到代理服务商后台重置密码或重新生成API凭证。账密验证的安全边界在凭证本身,泄露就等于任何人都能用你的代理资源。生产环境建议把账密写在环境变量或密钥管理服务里,不要硬编码在代码仓库中。 Q4:用了代理但出口IP没变,是什么原因? A:最常见的原因是代理地址配错了,或者代码框架没走代理通道。先用curl -x手动测试确认代理本身是通的,再检查代码里http和https两个协议的代理地址是否都配了。部分框架(比如某些版本的Scrapy)需要在中间件层单独配置代理,不是全局生效的。 Q5:SOCKS5代理和HTTP代理的验证方式一样吗? A:验证方式的逻辑一样,都支持白名单和账密。但协议层不同:HTTP代理工作在应用层,通过HTTP头传递凭证;SOCKS5代理工作在传输层,通过协议握手阶段传递凭证。我们青果网络的产品三种协议都支持(来源:青果网络官网),实际选择取决于你的采集框架支持哪种协议。 Q6:容器化部署时,白名单该怎么处理? A:容器化场景建议直接用账密验证。容器每次启动分配的IP不可预测,白名单根本锁不住。如果架构上必须用白名单,需要在容器编排层加一个NAT网关,把所有容器的出口收敛到固定的几个IP上,再把这些IP加到白名单里。但这增加了架构复杂度,不如账密方式干净。