一个做家居用品比价的朋友上周来找我,说他的采集脚本"变笨了"。同一份代码,早两个月一天能跑完的商品页,现在跑两遍还跑不完,日志里密密麻麻全是 403 和超时。他先怀疑是自己的解析逻辑写错了,翻来覆去改了三晚,最后发现问题根本不在代码上——是代理池不行了。
问"爬虫代理ip哪家好"的人特别多,但多数人问的方式就跑偏了:一上来先问"你们有多少IP""一个月多少钱"。这两项最好回答,也最说明不了什么。真正值得盯的其实就三件事:跑起来能成多少、这些IP干不干净、出了问题多久有人回你。下面把这三件事拆开讲,每一件都给你能自己动手验的办法。
一、采集成功率:跑够量了再谈数字
成功率这个东西,最容易被话术带走。销售说"我们可用率 99%",你要问的是:在多少并发下、跑什么类型的站点、连续跑多久。脱离这三个前提的成功率,跟没写一样。
自己测的办法不复杂:挑 50 到 100 个真实的目标页,最好是同一类列表页,结构一致,这样失败原因才好归因。然后写个最短的脚本,把状态码分成三类记——正常返回、被拦(403/429)、异常(超时、连接失败)。三类分开记,比只记一个成功率有用得多,因为被拦说明IP被目标站识别了,超时说明代理线路本身有问题,处理方式完全不同。
import requests, time
TARGETS = [f"https://你的目标站/列表页?page={i}" for i in range(1, 501)]
PROXY = "http://用户名:密码@代理地址:端口"
ok = blocked = fail = 0
start = time.time()
for url in TARGETS:
try:
r = requests.get(
url,
proxies={"http": PROXY, "https": PROXY},
timeout=10,
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}
)
if r.status_code == 200:
ok += 1
elif r.status_code in (403, 429):
blocked += 1
else:
fail += 1
except Exception:
fail += 1
total = len(TARGETS)
print(f"成功率 {ok/total:.1%} | 被拦 {blocked} | 异常 {fail} | 总耗时 {time.time()-start:.0f}s")
几个容易踩的坑记一下。并发别一上来就拉满,先用 5 到 10 个并发跑一轮,看基线,再往上加,不然你分不清是被封还是自己把对方打崩了。超时给到 10 秒左右比较合适,太短会误判线路质量。测试时间窗也别挑凌晨,那会儿大家都不跑,数据好看但不真实,选业务真正的高峰时段才有参考价值。
我拿这套方法跑过不少池子,差距很直观:差的成功率在 55% 上下,日志里全是 403;中等的能到 90% 出头;能把稳定时段做到 98% 以上的就已经算不错了。神龙HTTP 标称可用率 99.9%,我在连续跑的场景里测下来基本贴着这个数走,高峰时段会有一点回落,但没有出现过断崖式下跌——这一点比某个漂亮的单次数字重要得多。
二、IP纯净度:储备大不等于池子干净
"三千万IP"听着很震撼,但你实际能用到的,是那一天那一批。如果这批IP之前被很多人拿去请求过同一个站点,那你接手的时候,它们已经是"熟面孔"了,第一个请求就可能被挡回来。这就是纯净度的意义:不是数量问题,是这批IP有没有被过度消耗过。
下面四个检查项,你可以对着服务商一个个问,也可以自己动手验:
| 检查项 | 池子不干净的表现 | 干净池子的表现 | 自己怎么验 |
|---|---|---|---|
| 首次命中率 | 前 100 次请求就大面积吃 403 | 前 100 次基本正常返回 | 用同一个IP连打同一站点,看第几次被拦 |
| IP来源 | 含糊其辞,说不出授权链路 | 运营商正规授权,可说明来源 | 直接问能不能提供授权说明 |
| 复用程度 | 一个IP被大量用户反复共用 | IP纯度能做到 99.8% | 抽 20 个IP连续请求,看返回内容是否异常 |
| 定位粒度 | 只能给到大区或国家级 | 300+ 城市级精准定位 | 取 10 个IP查归属城市是否真的分散 |
表里第三行是我最看重的一项。做市场研究、做比价、做区域价格对比的时候,如果拿到的IP归属地全挤在同一个城市,那你采回来的数据其实是"一个地方的视角",结论容易偏。神龙HTTP 这块给的是 300+ 城市级精准定位,配合短效动态、长效静态、固定IP几条产品线,可以按任务的时长特点搭配着用:短任务用短效动态,常驻的采集节点用长效静态或固定IP,不用一股脑全堆在一种类型上。
三、售后响应:顺风时看不见,逆风时才要命
代理这行,平时都挺顺,出问题往往就在最不该出问题的时候——比如凌晨两点,一个跑了六个小时的任务突然卡住,日志刷满超时,第二天早上要交数据。
这种时刻,考验的不是价格,是响应。你在选服务商的时候,可以主动做个小测试:工作日晚上十点后提一个技术工单,问一个稍微具体点的问题,比如"我的并发到 50 以后超时率明显上升,是线路问题还是我配置问题"。看对面多久回、回的是模板话术还是真的在帮你定位。
另外两个细节也值得看。一是有没有现成的文档和示例代码,API 能不能直接接进你现有的爬虫框架里,主流编程语言都兼容的话,集成通常半天就能搞定,省掉大量自己试错的时间。二是有没有用量可视化,个人中心能看到请求量、成功率的实时监控和趋势,出问题的时候你能一眼看出是哪个时间段开始掉的,而不是靠猜。神龙HTTP 这两块都提供,技术团队是 7×24 小时支持,我在深夜提过工单,回复速度是可以接受的水平。
四、把三项揉成一个判断,别只看单项满分
三项指标单独看都有短板。成功率再高,IP不干净也是饮鸩止渴;IP再干净,出问题三天没人管,任务一样停摆。我给自己的权重是:采集成功率 40%、IP纯净度 35%、售后响应 25%,哪一项明显掉队就扣分,不追求某一项满分。
落地节奏建议这样走:先用小流量跑一天短效动态,把成功率、被拦率、超时率三个数拿到手;第二天把并发提到你真实业务的水位再跑一轮,看曲线有没有断崖;两轮都过关,再谈长期合作和套餐选型。这个过程花不了两天,但能帮你避开后面几个月的反复折腾。
如果你的采集任务是要长期跑的,稳定性比单价重要得多。三千万级正规授权IP储备、99.8% 的IP纯度、300+ 城市定位,这几项叠起来的意义不是参数好看,而是你半夜不用爬起来重启任务。
常见问题
Q:采集成功率多少才算合格?
看任务类型。一般的商品页、资讯页采集,稳定时段能做到 95% 以上就算合格;对数据完整性要求高的场景,比如要做价格趋势分析,建议要求 98% 以上。低于 90% 的话,你花在重试和补采上的时间成本,往往比省下的代理费用更高。
Q:IP数量越多越好吗?
不是。你要的是"这批IP没被过度用过",而不是"IP总量很大"。一个几百万量级但轮换干净、来源正规的池子,实际效果通常好过一个数量翻十倍但复用得厉害的池子。看数量之前,先看纯净度和定位粒度。
Q:短效动态和长效静态该怎么选?
按任务时长分。抓取周期短、需要频繁获取新的IP来分散请求的,用短效动态;需要长期保持同一个出口、维持会话状态的,用长效静态或固定IP。很多项目其实是两种混着用,登录态相关的走静态,公开页面列表走动态。
Q:测试阶段要跑多少请求才有参考价值?
至少 500 次,能到 1000 次更好。低于 200 次的样本,偶然性太大,一个线路抖动的十分钟就能让结果失真。测试时把成功、被拦、超时分开记,比只记一个总成功率有用得多。





