淘宝高级详情接口是淘宝开放平台(Taobao Open Platform, TOP)提供的一种高级接口,允许开发者通过商品 ID 获取商品的详细信息,包括商品标题、价格、库存、SKU 属性、促销信息、图片、描述等。以下是接入淘宝高级详情接口的完整指南,以及 Python 代码实战示例。
一、接口接入准备
1. 注册淘宝开放平台账号
- 访问 淘宝开放平台/万邦开放平台。
- 注册并登录账号,完成开发者认证。
2. 创建应用
- 登录开发者后台,点击 “创建应用”。
- 填写应用名称、应用类型(如网站、移动应用等)、应用描述等信息。
- 提交审核,审核通过后获取 App Key 和 App Secret。
3. 申请接口权限
- 在应用管理页面,搜索并申请 “taobao.tbk.item.info.get” 或 “taobao.item.get” 接口权限。
- 等待审核通过后,即可调用接口。
4. 获取 Access Token
- 淘宝开放平台使用 OAuth 2.0 协议进行授权。
- 开发者需要通过授权流程获取 Access Token,用于调用接口时的身份验证。
- 授权流程参考淘宝开放平台文档:OAuth 2.0 授权。
二、接口调用说明
1. 接口地址
- 淘宝高级详情接口的请求地址为:
https://eco.taobao.com/router/rest
2. 请求方式
- 使用 HTTP GET 或 POST 方法。
3. 请求参数
- 必填参数:
method
: 接口名称,例如taobao.tbk.item.info.get
。app_key
: 应用的 App Key。timestamp
: 当前时间戳,格式为yyyy-MM-dd HH:mm:ss
。format
: 返回数据格式,通常为json
。v
: 接口版本,通常为2.0
。sign_method
: 签名方法,通常为md5
。sign
: 请求签名。num_iids
: 商品 ID 列表,多个商品 ID 用逗号分隔。access_token
: 用户的 Access Token。
- 可选参数:
fields
: 需要返回的字段列表,例如num_iid,title,price,pic_url,detail_url
。
4. 签名生成
- 签名是保证请求安全性的重要步骤,需按照淘宝开放平台的签名规则生成。
- 签名规则参考:签名规则。
三、Python 代码实战
以下是一个完整的 Python 示例,演示如何调用淘宝高级详情接口获取商品信息。
python
import requests | |
import time | |
import hashlib | |
# 配置信息 | |
APP_KEY = 'your_app_key' | |
APP_SECRET = 'your_app_secret' | |
ACCESS_TOKEN = 'your_access_token' | |
# 生成签名 | |
def generate_sign(params, app_secret): | |
# 按参数名排序 | |
sorted_params = sorted(params.items()) | |
# 拼接参数 | |
query_string = '&'.join([f"{k}={params[k]}" for k, v in sorted_params]) | |
# 拼接 App Secret | |
sign_string = f"{query_string}{app_secret}" | |
# MD5 加密并转为大写 | |
return hashlib.md5(sign_string.encode('utf-8')).hexdigest().upper() | |
# 调用接口 | |
def get_item_detail(num_iids): | |
# 接口地址 | |
url = "https://eco.taobao.com/router/rest" | |
# 请求参数 | |
params = { | |
'method': 'taobao.tbk.item.info.get', # 接口名称 | |
'app_key': APP_KEY, | |
'timestamp': time.strftime('%Y-%m-%d %H:%M:%S'), | |
'format': 'json', | |
'v': '2.0', | |
'sign_method': 'md5', | |
'num_iids': num_iids, | |
'fields': 'num_iid,title,price,pic_url,detail_url', # 返回字段 | |
'access_token': ACCESS_TOKEN | |
} | |
# 生成签名 | |
params['sign'] = generate_sign(params, APP_SECRET) | |
# 发送请求 | |
response = requests.get(url, params=params) | |
# 返回结果 | |
if response.status_code == 200: | |
return response.json() | |
else: | |
return {'error': f"HTTP {response.status_code}", 'message': response.text} | |
# 示例:获取商品 ID 为 123456789 的商品信息 | |
if __name__ == "__main__": | |
num_iids = "123456789" | |
result = get_item_detail(num_iids) | |
print(result) |
四、代码说明
- 签名生成:
- 按照淘宝开放平台的签名规则,对请求参数进行排序、拼接、加密,生成签名。
- 接口调用:
- 使用
requests.get
方法发送 HTTP 请求。 - 请求参数包括
method
、app_key
、timestamp
、format
、v
、sign_method
、num_iids
、fields
和access_token
。
- 使用
- 返回结果:
- 接口返回 JSON 格式的数据,包含商品信息。
- 如果请求失败,返回错误信息。
五、注意事项
- 接口权限:
- 确保已申请并开通
taobao.tbk.item.info.get
或taobao.item.get
接口权限。
- 确保已申请并开通
- Access Token:
- Access Token 是调用接口的必要参数,需通过 OAuth 2.0 授权流程获取。
- 频率限制:
- 淘宝开放平台对接口调用有频率限制,请参考官方文档中的 QPS 限制。
- 错误处理:
- 捕获接口调用中的异常,例如网络错误、签名错误、权限不足等。
- 数据安全:
- 妥善保管 App Key、App Secret 和 Access Token,避免泄露。
六、返回结果示例
成功调用接口后,返回的 JSON 数据示例如下:
json
{ | |
"results": { | |
"n_tbk_item": [ | |
{ | |
"num_iid": "123456789", | |
"title": "商品标题", | |
"price": "100.00", | |
"pic_url": "https://img.alicdn.com/xxx.jpg", | |
"detail_url": "https://item.taobao.com/item.htm?id=123456789" | |
} | |
] | |
}, | |
"total_results": 1, | |
"request_id": "123abc456def" | |
} |
七、总结
通过淘宝高级详情接口,开发者可以方便地获取商品的详细信息,为电商应用、数据分析等场景提供支持。接入接口时,需注意权限申请、签名生成、频率限制等关键点,确保接口调用的稳定性和安全性。
更多详细信息请参考淘宝开放平台官方文档:淘宝开放平台/万邦开放平台。