下大单之前,怎么先测一家代理服务商
一小时的测试计划加一段简短的 Python 脚本,帮你在大额订单把你绑住之前,弄清一家代理服务商在你的目标站上到底行不行。
在这个市场里,最便宜的错误是一笔没用上的小额充值。最贵的错误是因为价格页看着顺眼就下了一笔大单。第一次给任何一家服务商付钱(包括我们),都把它当成测试预算:用它回答几个具体问题,然后再决定要不要多花。
下面是我们自己也会照着走的流程。
付钱之前
先在服务商的网站上读三样东西。少了哪一样,这本身就是一个发现。
- 退款政策。 没用完的余额能不能退,怎么退?我们的写在实话实说页和退款政策里。
- 可接受使用政策。 买之前先确认你的任务在允许的那一边,免得跑到一半账号被关。我们的在这里。
- 用量怎么算。 对按 GB 计费的产品来说,哪些字节计费,失败的请求怎么处理。我们的写在计量部分。
然后就你的使用场景,在他们的支持渠道问一个真实的问题,记下多久回复、回答的是不是你问的。以后出问题的时候,你要依赖的就是这个渠道。
测试买什么
能回答你问题的最小订单。对住宅代理这类按 GB 计费的产品,就是下单表单允许的最小数量;用普通 HTML 页面做测试,一个 GB 能跑很多请求。对 ISP 或数据中心这类按 IP 计费的产品,买一个 IP、选最短的期限,就足够看出这个网络能不能通。当前数字见价格页。
五项检查
对着你关心的那个站点跑。一个代理能打开 example.com,并不能说明它能过一家有反爬墙的电商。
- 能不能通? 用目标站上的真实页面,按有没有拿到你想要的内容来计数。
- IP 是不是标签上写的那种? 把数据中心 IP 当住宅卖,是廉价代理里最常见的谎话。自己查 IP 类型讲了怎么自己查。
- 是不是在你要的地方? 对支持国家定位的线路,查一下出口 IP 的国家。我们的住宅线路不能选国家,这一项在住宅上跳过。
- 够不够快? 除了中位数,也看慢的那一截。多数请求很快、十分之一很慢的代理,会把整个工作池拖住。
- 用量表和你的数对不对得上? 自己数字节,再和控制台对比。怎么核对服务商的用量表一步步讲了做法。
用来做第一项和第四项的脚本
从目标站取五十个 URL 做样本比较合适。MARKER 是一段只会出现在真实页面上的短字符串,比如商品标题的 class 或者你预期会看到的标题,这样一个装着验证码的 200 就不会被算作通过。
import csv
import statistics
import time
import requests
PROXY = "http://USERNAME:PASSWORD@HOST:PORT"
PROXIES = {"http": PROXY, "https": PROXY}
MARKER = "product-title"
URLS = [line.strip() for line in open("sample-urls.txt") if line.strip()]
rows = []
for url in URLS:
started = time.perf_counter()
try:
r = requests.get(url, proxies=PROXIES, timeout=30)
status, body, error = r.status_code, r.text, ""
except requests.RequestException as exc:
status, body, error = 0, "", type(exc).__name__
rows.append({
"url": url,
"status": status,
"real_page": MARKER in body,
"seconds": round(time.perf_counter() - started, 3),
"error": error,
})
with open("provider-test.csv", "w", newline="") as f:
writer = csv.DictWriter(f, fieldnames=list(rows[0]))
writer.writeheader()
writer.writerows(rows)
real = [row for row in rows if row["real_page"]]
times = sorted(row["seconds"] for row in real)
print(f"real pages: {len(real)} of {len(rows)}")
if times:
print(f"median {statistics.median(times):.2f}s, slowest tenth from {times[int(len(times) * 0.9)]:.2f}s")
把你自己的 HOST、PORT、USERNAME 和 PASSWORD 填进去;我们的控制台在每个服务的页面上都有。把 CSV 留好。以后要找人理论,它就是你的证据。
先定及格线
跑之前就写下来:什么样的结果会让你继续花钱,五十个页面里要有多少个是真实页面,慢的那一截最慢能慢到什么程度。钱花出去以后,人很容易说服自己接受一家服务商。事先写下的数字就没那么好糊弄。
如果结果明显通过,就下更大的单。如果明显不通过,就到此为止,剩下的按退款政策处理。如果不上不下,就把 CSV 拿去问服务商的支持,看他们怎么说。那次对话告诉你的,不比测试本身少。
测我们
上面这些同样适用于 ProxyPanda。先下一笔小单,跑脚本,查 IP、查用量表,然后拿实话实说页上写的内容来要求我们。有哪里对不上,把数字贴到 Discord,我们当众回答。