一、核心流程与工具准备
-
平台注册与认证
- 访问淘宝开放平台,完成企业/个人实名认证,提交营业执照或身份证信息,审核周期1-3个工作日。
- 创建应用后获取
AppKey和AppSecret,这是调用API的唯一身份标识。
-
API权限申请
- 在控制台申请商品搜索类接口权限,如
taobao.item.search(商品搜索)、taobao.tbk.item.get(淘宝客商品搜索)或taobao.item.get(商品详情)。 - 企业认证用户可提升调用频率至10万次/天,免费版通常为500次/天。
- 在控制台申请商品搜索类接口权限,如
二、API调用技术实现
1. 签名生成(MD5算法示例)
python
import hashlib
import time
import requests
def generate_sign(params, app_secret):
sorted_params = sorted(params.items())
sign_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
params = {
"method": "taobao.item.search",
"app_key": "YOUR_APPKEY",
"q": "女装", # 关键词
"page_no": 1, # 页码
"page_size": 50, # 每页数量
"sort": "price_asc", # 排序方式
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"sign_method": "md5"
}
params["sign"] = generate_sign(params, "YOUR_APPSECRET")
response = requests.get("https://eco.taobao.com/router/rest", params=params)
2. 响应数据解析
成功响应示例(JSON):
json
{
"item_search_response": {
"total_results": 1000,
"items": {
"item": [
{
"num_iid": "123456789", # 商品ID
"title": "夏季新款连衣裙",
"price": "199.00",
"pic_url": "https://img.alicdn.com/xxx.jpg", # 主图
"volume": 200 # 销量
}
]
}
}
}
三、实战场景与代码示例
场景1:商品搜索与分页处理
python
def search_all_items(keyword, max_pages=10):
all_items = []
for page in range(1, max_pages + 1):
params["page_no"] = page
response = requests.get(url, params=params)
data = response.json()
all_items.extend(data["item_search_response"]["items"]["item"])
time.sleep(1) # 避免触发限流
return all_items
场景2:商品详情获取
python
def get_item_detail(num_iid):
params = {
"method": "taobao.item.get",
"app_key": "YOUR_APPKEY",
"num_iid": num_iid,
"fields": "num_iid,title,price,pic_url,item_imgs,desc"
}
params["sign"] = generate_sign(params, "YOUR_APPSECRET")
response = requests.get(url, params=params)
return response.json()
四、关键注意事项
-
频率限制与缓存
- 使用Redis缓存商品数据,设置1小时过期时间,减少API调用频次。
- 分布式部署调用节点时,需通过IP轮询或代理池突破单IP限制。
-
数据合规与安全
- 禁止存储用户隐私字段(如手机号、地址),违反将封禁API权限。
- 图片URL需通过阿里OSS中转,防止盗链;妥善保管
AppKey和AppSecret。
-
错误处理
- 检查响应中的
error_response字段,处理常见错误码(如400参数错误、403权限不足)。 - 使用
try-except捕获网络请求异常,避免程序崩溃。
- 检查响应中的
五、替代方案与工具推荐
- 淘宝客API:适用于推广场景,可获取佣金比率、优惠券信息,需配置淘宝客PID。
- 第三方数据服务:如万邦开放平台,需验证数据合法性,注意法律风险。
- 官方SDK:阿里云开发者社区提供developer.aliyun.com/sdk/python,简化调用流程。
通过以上步骤,可合规获取淘宝商品信息,实现电商数据分析、比价系统、选品工具等业务场景。具体参数和返回字段需以open.taobao.com/api.htm为准,定期关注接口更新。