一、接口选择与权限申请
- 核心接口 :
taobao.item.search:支持通过关键词、价格区间、销量等条件搜索商品,返回商品ID、标题、价格、销量、分类ID(cid)等核心字段。taobao.itemcats.get:根据分类ID(cid)获取分类详情,包括类目名称、是否叶子节点(is_leaf)及子类目关系。
- 权限申请 :
- 登录淘宝开放平台,完成企业或个人实名认证。
- 创建应用,选择业务场景(如"电商数据分析"),申请上述接口权限。
- 审核通过后获取
AppKey和AppSecret,用于接口调用签名。
二、接口调用流程
1. 商品搜索接口调用(taobao.item.search)
-
必填参数:
q:搜索关键词(如"无线耳机")。page_no:页码(默认1)。page_size:每页数量(默认20,最大40)。
-
可选参数:
cat:分类ID(通过taobao.itemcats.get获取)。price_start/price_end:价格区间。sort:排序方式(如price_asc升序、sale_desc销量降序)。fields:返回字段(如num_iid,title,price,cid)。
-
请求示例(Python):
python`import hashlib import requests from datetime import datetime def generate_sign(params, app_secret): sorted_params = sorted(params.items(), key=lambda x: x[0]) param_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret return hashlib.md5(param_str.encode()).hexdigest().upper() app_key = "YOUR_APP_KEY" app_secret = "YOUR_APP_SECRET" timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") params = { "method": "taobao.item.search", "app_key": app_key, "timestamp": timestamp, "format": "json", "v": "2.0", "q": "无线耳机", "page_no": 1, "page_size": 20, "fields": "num_iid,title,price,cid" } params["sign"] = generate_sign(params, app_secret) response = requests.get("https://eco.taobao.com/router/rest", params=params) items = response.json().get("item_search_response", {}).get("items", {}).get("item", []) ` -
返回结果:
json`{ "item_search_response": { "items": { "item": [ { "num_iid": "123456789", "title": "无线耳机 降噪版", "price": "299.00", "cid": "50020632" // 分类ID } ] }, "total_results": 1000 } } `
2. 分类信息获取(taobao.itemcats.get)
-
参数设置:
parent_cid:父类目ID(0表示顶级类目)。fields:返回字段(如cid,name,is_leaf)。
-
请求示例:
python`params = { "method": "taobao.itemcats.get", "app_key": app_key, "timestamp": timestamp, "format": "json", "v": "2.0", "parent_cid": 0, "fields": "cid,name,is_leaf" } params["sign"] = generate_sign(params, app_secret) response = requests.get("https://eco.taobao.com/router/rest", params=params) categories = response.json().get("item_cats_get_response", {}).get("item_cats", {}).get("item_cat", []) ` -
返回结果:
json`{ "item_cats_get_response": { "item_cats": { "item_cat": [ { "cid": "50020632", "name": "布艺沙发", "is_leaf": true } ] } } } `
三、关键注意事项
- 签名机制 :
- 所有参数(除
sign外)按ASCII码升序排列,拼接键值对后首尾追加AppSecret,进行MD5加密并转为大写。
- 所有参数(除
- 分页处理 :
- 通过
page_no和page_size分页查询,总页数由total_results和page_size计算。 - 建议单次请求不超过40条,避免触发限流(免费版500次/天,企业版10万次/天)。
- 通过
- 缓存策略 :
- 对高频查询(如热门分类)使用Redis缓存,减少重复请求。
- 错误处理 :
- 检查响应中的
error_response字段,处理常见错误码(如400参数错误、403权限不足)。
- 检查响应中的
- 数据合规 :
- 禁止存储用户隐私字段(如手机号、地址),避免泄露
AppKey和AppSecret。
- 禁止存储用户隐私字段(如手机号、地址),避免泄露
四、应用场景
- 商品比价系统 :
- 实时获取多平台商品价格,构建价格监控系统。
- 选品分析工具 :
- 根据关键词和分类筛选商品,分析市场趋势。
- 直播电商数据看板 :
- 展示商品分类分布、销量排名等关键指标。
- 跨境电商商品库 :
- 丰富商品库,支持多语言分类映射。