淘宝高级详情接口是淘宝开放平台(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. 接口地址
- 淘宝高级详情接口的请求地址为: arduino 体验AI代码助手 代码解读复制代码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"
}
七、总结
通过淘宝高级详情接口,开发者可以方便地获取商品的详细信息,为电商应用、数据分析等场景提供支持。接入接口时,需注意权限申请、签名生成、频率限制等关键点,确保接口调用的稳定性和安全性。