实测方法

我们怎么测代理

大多数代理评测只给结论,不给方法。这样就无法验证,也无法复现——而”我的项目里成功率是多少”这个问题,只有你自己测才能回答。这一页公开本站用的三个测试,你可以直接拿去跑。

要点|这套方法解决的问题

把”哪家代理更好”这种无法验证的问题,换成”某类代理在我的目标站点上成功率是多少”这种可以测量、可以复现、可以持续监控的问题。

测试一:成功率基线

目的:量出某类代理在目标站点上的真实可用率。这是所有选型决策的起点。做法是用固定出口对同一 URL 连续请求 200 次,按响应类型分类计数。

import requests
from collections import Counter

PROXY = "http://用户名:密码@gateway.example.com:8080"
URL   = "https://目标站点.example/product/123"
BLOCK_MARKERS = ("验证码", "captcha", "access denied", "unusual traffic")

def classify(resp) -> str:
    body = resp.text[:4000].lower()
    if resp.status_code in (403, 429):
        return "blocked"
    if any(m in body for m in BLOCK_MARKERS):
        return "challenged"      # 关键:状态码 200,但内容不是你要的
    if len(resp.text) < 500:
        return "too_small"
    return "ok"

stats = Counter()
for i in range(200):
    try:
        r = requests.get(URL, proxies={"http": PROXY, "https": PROXY}, timeout=(10, 45))
        stats[classify(r)] += 1
    except Exception as e:
        stats["error"] += 1

total = sum(stats.values())
print(dict(stats))
print(f"成功率 = {stats['ok'] / total:.1%}")

注意|必须区分 challenged

被风控拦截时,很多站点返回的 HTTP 状态码仍然是 200,只是内容换成验证码页或占位页。如果你的程序只看状态码,会把它算成成功,最后表现为”入库的数据莫名其妙变少”。这个错误在自建采集里非常常见。

测试二:出口一致性

目的:确认粘性会话是否真的生效。需要登录态的任务如果出口在悄悄变化,账号迟早会触发验证。

import requests

def exit_ip(session_id: str) -> str:
    user = f"用户名-session-{session_id}"          # 参数名以官方文档为准
    proxy = f"http://{user}:密码@gateway.example.com:8080"
    r = requests.get("https://httpbin.org/ip",
                     proxies={"http": proxy, "https": proxy}, timeout=30)
    return r.json()["origin"]

# 同一个会话 ID 连续请求,出口应当一致
same = {exit_ip("fixed-001") for _ in range(5)}
print("同会话出口数量:", len(same), "->", same)

# 不同会话 ID 应当落在不同出口
spread = {exit_ip(f"rnd-{i:03d}") for i in range(5)}
print("跨会话出口数量:", len(spread))

如果”同会话出口数量”大于 1,说明粘性参数没生效——常见原因是参数名写错,或者你的账号套餐不含粘性会话功能。

测试三:地域差异

目的:判断目标站点是否按地域返回不同内容。价格监控和广告验证这两类业务,如果忽略这一步,后面所有数据的准确度都无从谈起。

  • 用目标城市的出口和你的常规出口各请求一次同一页面
  • 比对关键字段:价格、库存、促销标签、广告位
  • 如果结果不同 → 该站点存在地域差异化,必须用目标城市出口采集
  • 如果结果相同 → 地域不是变量,可以按成本和速度选通道

如何解读结果

成功率结果对照

成功率判断下一步
95% 以上防护很弱数据中心代理即可,无需为住宅付费
60% – 95%存在限流或初级 IP 信誉库降低单 IP 并发,或部分请求转住宅通道
30% – 60%有明显风控改用住宅代理,并检查请求头与请求模式
30% 以下强风控或被整段拦截住宅代理 + 会话轮换,必要时移动代理兜底
成功率正常但数据变少challenged 被当成成功检查 classify 逻辑,单独统计验证码页

这套方法的局限

  • 只测一类通道。测试结果不能跨站点外推——同一个代理在不同站点上的表现可能完全不同。
  • 是快照而非长期结论。目标站点的风控策略会变,成功率需要持续监控,建议按周复测。
  • 不测价格与库存准确性。成功率只说明”拿到了页面”,不说明”拿到的数据是对的”,后者需要业务侧校验。
  • 单机结果受本地网络影响。对比不同代理时,务必在同一台机器、同一时间段内测试。

说明|为什么不公布绝对排名

因为代理的表现高度依赖目标站点。对 A 站成功率 99% 的通道,在 B 站可能只有 40%。公布”某家最好”这种结论既无法验证,也会误导读者做出错误的采购决策。所以本站只公开方法,让你用自己的目标站点得出结论。

用这套方法测一遍你自己的目标站点

注册后可用试用额度直接跑测试一,成功率数据是你做采购决策最可靠的依据。