淘宝商品详情高级版(item_get_pro)调用详解

发布于:2025-09-08 ⋅ 阅读:(28) ⋅ 点赞:(0)

一、接口核心能力

  • 数据维度:支持获取商品基础信息(标题/价格/库存)、SKU规格、促销活动、实时销量、评价摘要、物流费用、店铺信息等超50个字段。
  • 特殊功能:支持多语言翻译(中/英/俄)、数据缓存控制、历史价格追踪、促销活动标记(如聚划算/秒杀)、全球购商品标识。
  • 适用场景:电商比价系统、智能选品工具、竞品监控、自有平台商品同步、用户端商品详情展示。
二、完整调用流程

1. 准入与认证

  • 注册淘宝开放平台账号,完成企业/个人实名认证(需提供营业执照或身份证)。
  • 创建应用:登录开发者中心→“我的应用”→新建应用,选择“自用型”或“他用型”,填写应用场景描述(如“商品数据分析”)。
  • 获取凭证:应用审核通过后,在“API管理”模块查看App Key和App Secret(需妥善保管,禁止泄露)。

2. 权限申请

  • 在应用详情页→“接口权限”中申请“商品详情高级版(item_get_pro)”权限,需提交使用场景说明(如“用于竞品价格监控”)。
  • 审核周期通常为1-3个工作日,审核通过后权限生效。

3. 请求参数构造

  • 必选参数
    • method: 固定值taobao.item.get_pro
    • app_key: 应用的App Key
    • num_iid: 商品ID(需通过商品搜索接口或手动获取)
    • fields: 指定返回字段(如title,price,skus,promotions,shop_info
    • timestamp: 请求时间戳(格式YYYY-MM-DD HH:MM:SS
    • sign: 签名(通过MD5算法生成,见下文)
  • 可选参数
    • cache: 是否使用缓存数据(yes/no,默认yes
    • lang: 翻译语言(cn/en/ru
    • result_type: 返回格式(json/xml,默认json
    • is_promotion: 是否包含促销信息(1/0

4. 签名生成规则


python

import hashlib
from urllib.parse import urlencode
def generate_sign(params, app_secret):
# 1. 参数按ASCII码升序排序
sorted_params = sorted(params.items(), key=lambda x: x[0])
# 2. 拼接签名字符串
sign_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret
# 3. MD5加密并转大写
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
# 示例参数
params = {
"method": "taobao.item.get_pro",
"app_key": "YOUR_APP_KEY",
"num_iid": "123456789",
"timestamp": "2025-09-07 10:00:00",
"format": "json",
"v": "2.0"
}
params["sign"] = generate_sign(params, "YOUR_APP_SECRET")

5. 请求发送与响应解析

  • 请求URLhttps://eco.taobao.com/router/rest
  • 响应示例

json

{
"item_get_pro_response": {
"item": {
"id": "123456789",
"title": "2025新款智能手表",
"price": "1299.00",
"skus": [
{"sku_id": "111", "specs": {"颜色": "黑色", "尺寸": "42mm"}, "price": "1299.00", "stock": 100}
],
"promotions": [{"type": "秒杀", "start_time": "2025-09-07 12:00:00", "end_time": "2025-09-07 14:00:00"}],
"shop_info": {"name": "官方旗舰店", "credit_score": 4.8},
"realtime_data": {"view_count": 5000, "conversion_rate": "3.2%"}
}
}
}
三、关键注意事项
  • 频率限制:默认单应用每日调用量1万次,每秒不超过50次,大促期间可申请临时提额。
  • 错误处理
    • 错误码1001:参数错误(检查num_iid格式)
    • 错误码1002:商品不存在(验证商品ID有效性)
    • 错误码3001:访问令牌无效(重新生成签名)
  • 数据合规
    • 禁止缓存价格/库存等实时数据超过15分钟
    • 需标注数据来源为“淘宝开放平台”
    • 禁止将数据用于非法用途(如爬虫、刷单)
四、代码示例(Python)

python

import requests
import hashlib
import time
class TaobaoAPI:
def __init__(self, app_key, app_secret):
self.app_key = app_key
self.app_secret = app_secret
self.api_url = "https://eco.taobao.com/router/rest"
def generate_sign(self, params):
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = self.app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + self.app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
def get_item_detail(self, item_id, fields="id,title,price,skus,promotions,shop_info"):
params = {
"method": "taobao.item.get_pro",
"app_key": self.app_key,
"num_iid": item_id,
"fields": fields,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0"
}
params["sign"] = self.generate_sign(params)
response = requests.get(self.api_url, params=params)
result = response.json()
return result.get("item_get_pro_response", {}).get("item", {})
# 使用示例
api = TaobaoAPI("YOUR_APP_KEY", "YOUR_APP_SECRET")
item = api.get_item_detail("123456789")
print(f"商品标题: {item.get('title')}")
print(f"当前价格: {item.get('price')}")
print(f"SKU信息: {item.get('skus', [])}")
五、最佳实践建议
  • 字段筛选:通过fields参数仅获取必要字段,减少数据传输量。
  • 异常重试:对网络超时或频率限制错误实施指数退避重试。
  • 数据清洗:使用BeautifulSoup清洗HTML详情中的脚本标签,避免XSS风险。
  • 监控告警:通过日志监控接口调用成功率,异常时触发告警。

通过以上步骤,可高效调用item_get_pro接口获取淘宝商品详情高级版数据,支撑电商数据分析、智能选品等场景需求。


网站公告

今日签到

点亮在社区的每一天
去签到