导语: 做店铺 ERP 要同步全店商品,做竞品分析要监控别人店铺,很多开发者第一反应是写爬虫 —— 结果 IP 一封一个准。其实正规路子就两条:淘宝开放平台 TOP 官方接口,和第三方封装 API。这篇把两条路都给你讲透,直接照着接。
先说结论:没有 "一次返回全店商品" 的接口
官方和第三方接口都只能分页返回,想拿全店商品,必须循环翻页。同时要做两件事:按需挑字段(不要一次请求全部字段)、控制请求频率(高频调用会触发限流甚至冻结应用权限)。
方案一:TOP 官方接口(只能读自己店铺)
前提准备:在淘宝开放平台创建应用、完成企业认证,拿到 app_key / app_secret,再让店铺主账号授权换取 session 密钥。
核心接口组合:
表格
| 接口 | 作用 |
|---|---|
taobao.items.onsale.get |
拉取在售商品列表 |
taobao.items.inventory.get |
拉取仓库下架商品 |
taobao.item.seller.get |
按 num_iid 查单品完整详情(SKU、属性、描述) |
操作流程:
- 调
items.onsale.get,设page_no、page_size,fields按需填商品 ID、标题、主图、价格; - 循环翻页,直到接口不再返回数据;
- 用同样逻辑调
items.inventory.get拉下架商品,两者合并 = 店铺全部商品; - 列表字段不够,再按
num_iid调详情接口补齐。
注意:只能访问授权的这一家店铺;接口有 QPS 和每日额度限制,个人应用额度很低,商用建议企业认证。
方案二:第三方 item_search_shop 接口(查任意公开店铺)
不需要目标店铺授权,只要卖家 ID 就能查公开商品,适合竞品监控、采购比价、外贸 ERP 货源对接。
- 传
seller_id,设置分页、排序条件发起请求; - 循环翻页汇总标题、主图、价格、销量、商品 ID 等公开信息;
- 需要细节再用配套的单品详情接口扩展。
边界:只能拿页面公开数据,拿不到商家私密库存、采购底价;请求频率同样要控制,防止触发风控。
通用接入步骤(两条路都适用)
- 定场景:管自己店铺用官方接口;看别人店铺用第三方接口;
- 备鉴权:官方要 app 密钥 + 店铺授权;第三方要服务商分配的调用密钥;
- 构参数:按需挑字段,减小传输量;
- 写分页:逐页读取,每轮加延时,别高频连打;
- 落数据:加异常捕获,处理超时、限流、空数据。
避坑清单
- 官方接口必须店铺授权,且只能读这一个店铺;
- TOP 接口要带签名和时间戳,时间差超 10 分钟请求直接失败;
- 别用爬虫抓页面,违规且极易封 IP,API 才合规;
- 分页循环要加最大页数限制,防止死循环烧额度。