- 技术背景
淘宝开放平台(Taobao Open Platform)提供了丰富的API接口供开发者调用,其中商品详情接口(如taobao.item.get或taobao.tbk.item.info.get)是获取商品标题、价格、SKU、图文详情等数据的核心接口。高级版本通常支持更多字段(如促销信息、视频详情、买家秀等)。
- 接口核心功能 获取商品基础信息(标题、价格、主图) 提取商品图文详情(HTML/JSON格式) 读取SKU库存及规格参数 支持高并发请求(需申请权限)
- 开发环境准备 Python 3.8+ 第三方库:requests(HTTP请求)、json(数据解析) 淘宝开放平台账号(需申请App Key和App Secret)
- 接口调用代码示例 python Copy Code import requests import hashlib import time
def get_taobao_item_detail(item_id, access_token): # 基础配置 app_key = "YOUR_APP_KEY" # 替换为你的App Key app_secret = "YOUR_APP_SECRET" # 替换为你的App Secret api_url = "eco.taobao.com/router/rest"
# 构造公共参数
params = {
"method": "taobao.item.get",
"app_key": app_key,
"timestamp": str(int(time.time())),
"format": "json",
"v": "2.0",
"sign_method": "md5",
"num_iid": str(item_id),
"fields": "num_iid,title,price,desc,sku,item_img,detail_url",
"access_token": access_token # 用户授权Token
}
# 生成签名(核心安全步骤)
param_str = ''.join([k + params[k] for k in sorted(params)])
sign_str = app_secret + param_str + app_secret
signature = hashlib.md5(sign_str.encode()).hexdigest().upper()
params["sign"] = signature
# 发送HTTP请求
try:
response = requests.get(api_url, params=params)
response.raise_for_status()
data = response.json()
# 解析数据
if "item_get_response" in data:
item_data = data["item_get_response"]["item"]
return {
"status": "success",
"data": item_data
}
else:
return {"status": "error", "msg": data.get("error_msg", "Unknown error")}
except Exception as e:
return {"status": "error", "msg": str(e)}
示例调用
if name == "main": item_id = "1234567890" # 替换为目标商品ID access_token = "YOUR_ACCESS_TOKEN" # 需通过OAuth2授权获取 result = get_taobao_item_detail(item_id, access_token) print(result)
- 关键参数说明 参数名 必填 说明 num_iid 是 商品数字ID(如商品URL中的id=123) fields 是 需返回的字段,多个用逗号分隔 access_token 是 用户授权令牌(通过OAuth2流程获取)
- 高频错误处理
错误码 7: 无效的App Key或签名错误
检查app_key/app_secret是否正确 验证签名生成逻辑(注意参数顺序和大小写)
错误码 11: 请求频率超限
申请更高QPS权限 添加请求间隔(如time.sleep(0.5))
错误码 27: 商品不存在或无权限
确认商品ID有效 检查access_token是否过期
- 高级功能扩展 批量获取详情:使用taobao.items.list.get接口 + 多线程请求 异步回调:通过notify_url接收淘宝服务器的推送消息 数据缓存:使用Redis缓存高频商品数据,减少API调用次数
- 注意事项 需遵守淘宝API调用规范,禁止超频、私密数据抓取 商品详情中的图片链接需替换为https协议 正式环境建议使用SDK(官方提供Java/PHP版本)
原创声明:代码仅供学习参考,实际调用需申请合法权限并遵守淘宝平台规则。