一、先划红线:第三方能干与不能干
| 能干 | 不能干 |
|---|---|
拿到官方授权后通过 taobao.item.get 抓取公开字段(标题、价格、主图、SKU、销量等) | 用爬虫破解网页或 App 加密接口 |
| 服务自己的签约商家(商家授权给你) | 把数据打包转售给未授权用户 |
| 购买开放平台“独立资源池”提升额度 | 绕过频率限制、秒级轮询 |
二、0→1 准备:第三方必须完成的 4 个动作
-
注册账号 → 企业实名认证(个人额度低,企业可提额到 1 万次/天)
-
创建“电商服务”类型应用 → 得到
App Key/App Secret -
在控制台→接口管理 申请
taobao.item.get权限,说明使用场景(如“为签约店铺提供比价看板”),审核 1-3 天 -
让“数据归属”的淘宝商家在后台对你应用点击授权 → 拿到
session_key(如需读取隐私字段才用,公开字段可省)
完成以上四步,你才具备“第三方合法身份”。
三、接口画像(官方版)
网关: https://eco.taobao.com/router/rest
Method: taobao.item.get
必选系统参数:
app_key, method=taobao.item.get, timestamp, v=2.0,
format=json, sign_method=md5, sign
业务参数:
num_iid - 商品数字ID(从商家商品链接里截取)
fields - 想返回的字段列表,英文逗号分隔
四、核心难点:签名算法(Python 版)
淘宝采用“首尾夹 secret + 参数升序拼接 + MD5 大写”模式,第三方必须动态生成,不能硬编码。
import hashlib, time
def generate_sign(params: dict, app_secret: str) -> str:
"""按淘宝开放平台签名规范生成 sign"""
sorted_pairs = sorted(params.items(), key=lambda x: x[0])
raw = app_secret
for k, v in sorted_pairs:
raw += f"{k}{v}"
raw += app_secret
return hashlib.md5(raw.encode()).hexdigest().upper()
实测签错一步就会返回 invalid-sign。
五、30 行完整可运行 DEMO
把以下代码保存为 tb_item_get.py 可直接跑:
import os, time, requests, json
from dotenv import load_dotenv
load_dotenv()
APP_KEY = os.getenv("TB_APP_KEY")
APP_SECRET = os.getenv("TB_APP_SECRET")
GATEWAY = "https://eco.taobao.com/router/rest"
def sign(p): # 复用上一段函数
raw = APP_SECRET + ''.join(f"{k}{v}" for k, v in sorted(p.items())) + APP_SECRET
return hashlib.md5(raw.encode()).hexdigest().upper()
def item_get(num_iid: str):
params = {
"method" : "taobao.item.get",
"app_key" : APP_KEY,
"timestamp" : time.strftime("%Y-%m-%d %H:%M:%S"),
"format" : "json",
"v" : "2.0",
"sign_method": "md5",
"num_iid" : num_iid,
"fields" : "num_iid,title,price,pic_url,location,sales,sku,desc"
}
params["sign"] = sign(params)
r = requests.get(GATEWAY, params=params, timeout=10)
r.raise_for_status()
return r.json()["item_get_response"]["item"]
if __name__ == "__main__":
item = item_get("652874751412") # 替换为商家商品ID
print(json.dumps(item, ensure_ascii=False, indent=2))
输出示例:
{
"num_iid": "652874751412",
"title": "iPhone 15 128G 粉色",
"price": "599900", // 单位=分
"pic_url": "https://img.alicdn.com/imgextra/...jpg",
"sales": 32876,
"location": "浙江 杭州",
"sku": { /* 省略 */ }
}
价格 ÷100 即可得人民币金额。
六、第三方常见 5 大场景封装
| 场景 | 关键字段 | 建议频率 | 备注 |
|---|---|---|---|
| 比价预警 | price, promo_price | 1 次/小时 | 存历史表画折线 |
| 选品库 | sales, title, location | 1 次/天 | 过滤月销>1w+评分>4.8 |
| ERP 同步 | sku.quantity | 1 次/15 分 | 库存<10 件钉钉提醒 |
| 竞品跟踪 | pic_url, desc | 1 次/周 | 图片哈希对比是否换主图 |
| 商家后台 | 全字段 | 用户点“刷新” | 走缓存,不直接打网关 |
七、额度 & 优化
-
默认 5 万调用/日;高频场景购买“独立资源池”可升至 100 万/日
-
批量入口:先
taobao.items.onsale.get拉店铺在售列表,再并发item.get(并发≤5,QPS≤1) -
缓存:SKU 与销量 15 分钟内视为“热数据”,用 Redis 缓存,减少无效调用
八、合规与风控 checklist(第三方必存)
☐ 隐私数据(买家手机号、收货地址)不落地
☐ 图片 URL 走 CDN 代理,不直接嵌入淘宝源链,避免版权投诉
☐ 用户协议加条款“数据来源于淘宝开放平台,所有权归商家与淘宝”
☐ 每年复审续约,如权限被回收 24h 内下线功能
☐ 接受淘宝合规部门抽检,提供调用日志(官方要求保存 6 个月)
如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。

被折叠的 条评论
为什么被折叠?



