问答

数据接口有按次、按条、按积分、按流量计费的,怎么放在一起比价?

简短回答

全部换算成每 1000 条可用数据要花多少钱。按次计费的,用单价乘以需要的调用次数:okdata 小红书搜索每次 $0.02,约 20 篇,1000 篇是 $1.00。按条计费的,单价乘以 1000,再加上每次运行的固定费用。积分、算力单位、代理流量还要多算一步,最好拿真实任务跑一遍再信估算。

A 家报每次请求 0.02 美元,B 家报每 1000 条结果 1 美元,C 家卖积分,某个爬虫平台按算力加代理流量收费。这些数字没法直接比。能比的只有一个:拿到 1000 条真正能用的数据,总共花多少钱。

换算公式

报价方式 每 1000 条的成本 要问清楚的
按次(按页) 单价 × ⌈1000 ÷ 每页条数⌉ 一页实际有多少条?空页收不收钱?
按条 单价 × 1000,加上每次运行或启动费 什么算一条:回复、重复、广告算不算?
积分 每次消耗积分 × 积分单价 × 次数 积分过不过期?不同套餐积分单价一样吗?
算力单位 每次运行的算力 × 单价,加代理和存储 我这个规模跑一次一般用多少?
代理按 GB 每 1000 页的流量 × 每 GB 价格,加服务器和人力 页面有多重?失败重试的比例多高?

像 Apify 这样的爬虫平台,有的爬虫按算力单位、代理和存储收费,有的按每条结果定价,同一个平台可能落在表里两行。住宅代理一般按 GB 卖流量,带视频预览的页面比纯文字页面重得多。

放到这张表里的 okdata

大多数接口按次计费,每个接口旁边都直接标了每 1000 条的成本:小红书笔记搜索是 $1.00,TikTok 视频评论是 $0.04。只有一个接口按条计费:公众号搜索按返回的账号数收费,每个 $0.058,每次至少按 1 个算,最多 $0.58。每次返回都写明了这次扣了多少:

curl -s -G "https://api.okdata.online/v1/wechat_mp/accounts/search" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'query=36氪' | jq '.meta.billing, (.data.items | length)'

最容易让比价失真的几处

  • 可用条数。 如果某家返回的数据有三分之一是翻页重叠出来的重复,它真实的千条成本要高出 50%。
  • 失败计不计费。 问清楚失败请求、超时、被拦截的页面收不收钱。用代理的话,成功失败流量费都照付。
  • 字段全不全。 便宜的结果如果没有点赞数或全文,你可能还得再花一笔更贵的钱去补。
  • 你的时间。 按算力、按流量计费,平台一改版,修的活儿都是你的。

最稳妥的办法:把入围的几家放在同一个 1000 条的任务上各跑一遍,用实际账单除以可用条数。这里每个接口的千条成本都在价格页上。

更新于