新代理IP到手,先做三步再上线
我一般不把刚拿到的代理IP直接丢进正式任务。先花两三分钟做基础检测:能不能连上、出口是不是目标地区、连续请求会不会失败。很多看起来能用的IP,问题都出在这三步里。
检测不需要复杂工具,命令行、脚本或在线IP查询工具都可以。核心是留下可复现的结果,方便后面判断异常。
第一步:测连通和响应时间
先确认代理IP能不能正常请求。这一步主要看两个指标:HTTP状态码和耗时。状态码正常,不代表业务没问题,但能排除大部分基础故障。
import requests
proxy = "user:pass@host:port"
target = "ip-check-url"
proxies = {"http": proxy, "https": proxy}
r = requests.get(target, proxies=proxies, timeout=10)
print(r.status_code, r.elapsed.total_seconds())
如果返回 200,且耗时在 1 秒以内,基础连通性通常没问题。如果超过 3 秒,不一定不能用,但要结合业务判断。做实时性要求高的公开数据采集,延迟太大会影响效率。
遇到连接超时,先检查代理格式、端口和认证信息。确认本地网络正常后,再判断是不是代理资源本身不稳定。
第二步:核验出口IP和地区
很多任务不是“能连上就行”,而是要确认出口IP落在目标地区。比如做市场研究时,不同地区的公开数据页面可能展示不同结果,出口地区不对,后续分析就容易跑偏。
可以用在线IP查询工具,或调用自己的IP信息接口,重点看三项:出口IP、所属地区、运营商信息。如果任务要求城市级定位,就重点看城市字段是否一致。
这里有个细节:同一个代理IP可能在不同节点出口,地区不一定稳定。如果第一次检测结果符合,但第二次又变了,建议记录时间、节点和地区,后面排查会更快。
第三步:连续请求,判断稳定性
单次通过只能说明“这一刻可用”。代理IP资源会变化,真正要判断的是它能不能持续可用。我会连续请求 20 次,统计失败次数和平均耗时。
fail = 0
times = []
for i in range(20):
try:
r = requests.get(target, proxies=proxies, timeout=5)
times.append(r.elapsed.total_seconds())
except Exception:
fail += 1
print("fail:", fail, "avg:", sum(times)/len(times) if times else 0)
20 次里失败 1 到 2 次,可以观察使用;失败 5 次以上,建议先标记异常。如果失败集中在某几个时间点,可能是资源波动;如果几乎每次都失败,直接获取新的IP更省事。
这一步也能看出延迟波动。平均耗时稳定在 1 秒左右,比单次 0.3 秒但偶尔跳到 5 秒更适合正式任务。
常见异常对照表
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 连接超时 | 端口不通、认证错误、网络抖动 | 先核对代理参数,再重试或获取新的IP |
| HTTP 502 / 504 | 代理节点异常、上游服务不稳定 | 记录节点信息,观察是否恢复 |
| 出口IP不符 | 出口未生效、地区定位不准 | 重新检测,必要时获取新的IP |
| 延迟超过 3 秒 | 节点距离远、资源负载高 | 选择更近的城市级定位资源 |
| 连续失败 | 资源不稳定、可用率不足 | 标记异常,降低使用权重 |
什么时候该获取新的IP
不是所有异常都要立刻获取新的IP。如果只是单次超时,先重试一次;如果连续 3 次以上失败,或者出口地区连续两次不符合要求,就可以获取新的IP测试。
做长期公开数据采集时,我会把检测数据存下来:IP、地区、状态码、耗时、失败次数。这样能看出哪些资源稳定,哪些资源只是短期可用。对可用率要求高的任务,稳定的资源比“看起来多”更重要。
如果任务需要城市级精准定位,并且对可用率有要求,我会优先考虑神龙HTTP。它提供 300+城市级精准定位,可用率做到 99.9%,适合地区要求明确、需要稳定出口的场景。
常见问题
Q: 在线测试代理IP是否可用,必须看地区吗?
A: 不一定。如果任务只要求连通,地区可以后验;如果做地区相关的公开数据采集或市场研究,出口地区必须核验。
Q: 响应时间多少算正常?
A: 1 秒以内比较稳,1 到 2 秒可以观察,超过 3 秒建议结合业务判断。实时性要求高的任务,延迟越高越不适合。
Q: 连续请求几次才算稳定?
A: 建议至少 20 次。失败 1 到 2 次可以观察,失败 5 次以上建议标记异常。重点看失败是否集中、耗时是否波动。
Q: 检测通过就代表长期稳定吗?
A: 不完全是。代理IP资源会变化,正式任务上线后最好定期抽检。发现异常时,及时获取新的IP,并记录异常原因。





