实操指南7 分钟阅读
网页数据采集与 API:怎么选,以及什么时候两者都不合适
API 稳定但受限,采集灵活但脆弱。选哪一个,取决于你最承受不起哪一种约束。
- 作者
- HuiTu Technology
- 发布时间
在官方 API 和公开页面采集之间做选择,通常被当成一个技术问题。它其实主要是在问:成本、覆盖范围、稳定性、授权条款,这四种约束里哪一种你最扛得住。
| 官方 API | 公开页面采集 | |
|---|---|---|
| 稳定性 | 高;有版本管理,变更会提前公告 | 低;页面模板说变就变 |
| 覆盖范围 | 只有服务方愿意开放的那部分 | 所有公开可见的内容 |
| 规模化成本 | 常常是最先卡住你的那道约束 | 成本在工程投入,而不是按次调用费 |
| 条款清晰度 | 写得明确,但常对存储有严格限制 | 需要自行判断,而且要谨慎 |
| 历史数据 | 留存期通常有限 | 只有你自己采过的那部分 |
| 维护成本 | 低 | 长期存在,永远降不到零 |
这些情况下用 API
- 数据要支撑线上的产品功能。一旦断供用户马上会察觉,而有人维护的 API 出问题的概率低得多。
- 调用量不大,价格不构成决定性因素。
- 你需要的字段在任何公开页面上都不展示。
- 出于合规或审计要求,数据来源必须可追溯。
这些情况下从公开页面采集
- 你需要某个品类在一片地域内的全量普查,而大多数 API 根本不允许你逐条枚举。
- 你要的数据页面上明明展示着,却没有任何 API 提供。
- 这是一份一次性的研究数据集,而 API 的存储限制与你的用途相冲突。
- 压根就没有 API——这仍然是最常见的情况。
真实的成本对比
API 的价格摆在明面上,所以显得贵。采集的成本主要是工程时间,所以在第二年到来之前都像是免费的。更有用的比较方式,是放在一个现实的时间跨度上看,而不是只看上线那一刻。
| 第 1 年 | 第 2 年 | 第 3 年 | |
|---|---|---|---|
| API | 按次计费,接入成本低 | 费率不变,但调用量在涨 | 依旧如此,还要加上可能的调价 |
| 自行采集 | 首次搭建成本高 | 只剩维护成本 | 只剩维护成本 |
| 谁更划算 | 通常是 API 更便宜 | 取决于数据量 | 上了规模,通常是自行采集更便宜 |
这个交叉点会随数据量和来源的变更频率而移动。对一个小功能来说,几乎总该选 API;对一份按季度刷新的全国级普查数据来说,通常不该选它。
多数时候胜出的是混合方案
实践中最好的答案往往是两者都用。先用采集把完整的记录全集建起来一次,因为这正是 API 最不擅长的事;再用 API 让其中体量更小、价值更高的那部分保持最新,因为这正是 API 最擅长的事。于是广度只付一次钱,新鲜度持续付费,而不是两头都按同一个费率买单。