知识

首次项目住宅代理设置清单

十二项检查,按顺序排列,从第一次请求到可以放手运行的任务。按清单逐项完成,即可避免让新手浪费一个月时间的错误。

Matt Brown

Matt Brown

2026年9月2日 · 1 分钟阅读

这是首次住宅代理项目的准备清单:需要确认的事项,按照修复成本从低到高的顺序排列。假设你大致了解代理是什么,如果不了解,先看面向初学者的住宅代理,然后再回来。

按顺序逐条处理,你就能避免那些通常会让首个项目多耗费数周的失败:为错误的工作负载设定的方案、看起来在运行却什么都没采集到的任务,以及没人预料到的账单。

写代码之前

1. 确认你确实需要住宅代理。 如果你的目标站点不严格审查流量,更便宜的基础设施同样能完成工作。先用普通连接和数据中心地址各测试一个目标;如果两者都能用,你就省下了溢价。对比内容见住宅代理与数据中心代理

2. 决定使用轮换还是静态。 大批量采集用轮换代理,需要持久保持某种状态时(比如账号或长会话)用静态 ISP 地址。这个选择一旦搞错,靠多买错误的那种是无法弥补的,详见共享与独享对比

3. 列出你的目标市场。 涉及哪些国家,是否有工作需要精确到城市。这决定了你的定位方式,也决定了是否需要检查这些市场的池深度,详见国家可用性

4. 在选择方案之前先估算带宽。 响应大小乘以请求量,再加上重试的余量。最大的单一影响因素在于你抓取的是数据接口还是渲染完整页面,两者可能相差百倍,所以先把这一点定下来,详见估算每月带宽

首次连接

5. 先让一个裸请求跑通。 不带任何定位参数,不带会话,不做任何花哨的事:

Terminal window
curl -x customer-USERNAME:PASSWORD@p.shifter.io:443 https://ipinfo.io/json

如果这一步失败,其他都无从谈起。407 通常意味着凭证有误或用户名格式不对;把所有内容都去掉,再一点点加回来,详见修复 407 错误

6. 确认轮换是否生效。 多次运行该命令,检查地址是否变化。如果没有变化,尤其是在命令行中有变化但在你的代码中没有变化,那问题几乎肯定出在 HTTP 客户端的连接复用上,而不是代理本身,详见IP 不轮换

7. 确认地理位置。 请求指定一个国家,然后核实两件事:出口地址是否报告为该国家,更重要的是,具备地理敏感性的目标站点是否表现得像你确实在那里,包括本地货币和语言。数据库的判断和目标站点自己的判断并不总是一致,而目标站点的判断才是关键。

8. 同时设置两个代理入口,并处理特殊字符。 在代码中,同时设置 HTTP 和 HTTPS 入口,而不是只设一个,并对密码中在 URL 中有特殊含义的字符做百分号编码。格式参考见如何连接

扩大规模之前

9. 让你的请求与出口相匹配。 发送完整的、符合浏览器特征的请求头集合,而不是裸露的 User-Agent,并将 Accept-Language 与出口国家绑定,使两者不产生矛盾。如果你在驱动浏览器,也要相应设置语言区域和时区。详情见设置正确的请求头

10. 校验响应内容,而不是状态码。 这一步是区分正常运行的管道和悄无声息采集不到任何数据的管道的关键所在。针对每个目标定义一个只在真正正常页面上出现的标记,只有通过该标记的响应才算成功。返回 200 的验证页面是这项工作中代价最高的失败类型,详见检测被屏蔽或伪造的内容

11. 在提升量级之前,先加入节奏控制和合理的重试机制,而不是事后补上。 针对每个目标设置带抖动的速率限制、并发上限,以及能够对失败进行分类而非无脑循环的重试逻辑。具体来说:遇到速率信号时应等待而不是靠更换地址来维持同样的速度,并且绝不要重试终止性错误。参见速率限制与请求节流重试逻辑

12. 设置成本保护机制。 跟踪每个请求的字节数,并在触及方案配额之前提前设置警报,因为首个项目最常见的意外情况是一个渲染任务在三天内耗尽一个月的带宽。相关方法见降低带宽成本

五分钟验证

在让任何任务无人值守地运行之前,先在一次简短运行中确认以下所有事项:

  • 出口地址不是你自己的地址
  • 在你没有要求保持会话的情况下,地址在请求之间会发生变化
  • 国家与你请求的一致,且目标站点也认可这一点
  • 一个故意构造的错误请求被判定为失败,而不是被计为成功
  • 每个请求的字节数大致符合你的估算
  • 遇到速率限制响应会触发等待,而不是立即重试

如果以上任何一项不对,现在就修复它。一旦上面已经积累了一个月的数据,每一项的修复成本都会大大增加。

首个项目常见的错误

以下四种情况占了大部分麻烦。

一上来就全速运行。 新写的管道通常会被设定为以代码所能达到的最快速度运行,而这恰恰是被封禁的最快途径。应该从慢速开始,再有意识地逐步提升。

盲目信任状态码。 前面已经讲过,之所以值得再提一次,是因为这是人们最常跳过的一步,也是最容易悄无声息毁掉整个数据集的一步。

渲染了本不需要渲染的页面。 在自动化浏览器之前,先检查数据是否可以从底层接口获取,详见何时需要无头浏览器

把粘性会话当作有保证的东西。 在真实的家庭网络连接上,会话只是尽力而为,因此流程必须能够容忍地址在流程中途发生变化,详见粘性代理与轮换代理对比

总结

先确认你到底是否需要住宅代理,再有意识地选择轮换或静态,列出你的目标市场,并在选择方案之前先估算带宽。然后在添加任何其他功能之前,先让一个裸请求跑通,确认轮换和地理位置,并在代码中同时设置两个代理入口。在扩大规模之前,让你的请求头与出口保持一致,校验响应内容而不是状态码,加入节奏控制和分类重试机制,并设置成本警报。在让任何任务无人值守运行之前,先完成五分钟验证。几乎所有代价高昂的首个项目失败,都是因为跳过了上述某一步,而每一步现在做都比事后补救更便宜。

这些步骤所配置的产品是住宅代理,一个网关支持国家和城市定位,并在流程需要时提供粘性会话,按每 GB计费,让一个小型首个项目对应一份小额账单。

准备好开始了吗?

试用 Shifter 住宅代理,205M+ 个 IP,195+ 个国家,低至 $0.75/GB。

立即开始