首页 > 大数据 > 数据分析 > 淘宝关键词API接口调用教程(2025年最新版)
taobao.items.search:基础商品搜索接口,支持关键词、价格区间、分类、排序等条件,返回商品ID、标题、价格、销量、图片等核心字段。taobao.tbk.item.get(淘宝客接口):适用于推广返利类应用,额外返回佣金比例、优惠券链接等营销字段。| 接口名称 | 适用场景 | 返回字段差异 | 调用频率限制 |
|---|---|---|---|
taobao.items.search |
商品检索、数据分析 | 基础商品信息(无佣金) | 免费版500次/天 |
taobao.tbk.item.get |
淘宝客推广、返利系统 | 含佣金比例、优惠券链接 | 需绑定淘宝客账号 |
前置准备
AppKey和
AppSecret(密钥泄露将导致账号封禁)。taobao.items.search),审核需1-3个工作日。签名生成(MD5算法)
pythonimport hashlibdef generate_sign(params, app_secret):sorted_params = sorted(params.items(), key=lambda x: x[0])sign_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secretreturn hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()# 示例参数params = {"method": "taobao.items.search","app_key": "YOUR_APP_KEY","q": "手机","page_no": 1,"page_size": 20,"timestamp": "2025-09-18 14:00:00" # 需动态生成}params["sign"] = generate_sign(params, "YOUR_APP_SECRET")发送请求与解析响应
pythonimport requestsurl = "https://eco.taobao.com/router/rest"response = requests.get(url, params=params)data = response.json()# 成功响应示例"""{ "items_search_response": { "items": { "item": [ { "num_iid": "123456789", "title": "智能手机 128G", "price": "2999.00", "pic_url": "http://img.alicdn.com/xxx.jpg", "sales": 10000 } ] }, "total_results": 5000 }}"""必填参数
q:搜索关键词(如“女装”“无线耳机”)。method:接口名称(如
taobao.items.search)。app_key、
timestamp、
sign:身份验证与签名。常用筛选条件
| 参数名 | 说明 | 示例值 |
|---|---|---|
start_price |
最、低价 |
100 |
end_price |
最高价 |
500 |
cat |
商品分类ID |
16(女装类目) |
is_tmall |
是否仅天猫商品 |
true/
false |
排序方式
| 参数值 | 说明 |
|---|---|
price_asc |
价格从低到高 |
sale_desc |
销量从高到低 |
credit_desc |
店铺评分从高到低 |
分页查询
pythondef search_all_items(keyword, max_pages=10):all_items = []first_page = search_items(keyword, page_no=、1) # 假设search_items为单页查询函数total_results = first_page["items_search_response"]["total_results"]total_pages = min(math.ceil(total_results / 20), max_pages)for page in range(1, total_pages + 1):result = search_items(keyword, page_no=page)all_items.extend(result["items_search_response"]["items"]["item"])time.sleep(1) # 避免触发限流return all_items
缓存策略
pythonimport redisr = redis.Redis(host='localhost', port=6379)def get_item_with_cache(item_id):cache_key = f"taobao_item:{item_id}"if r.exists(cache_key):return json.loads(r.get(cache_key))else:data = call_taobao_api(item_id) # 调用API获取数据r.setex(cache_key, 3600, json.dumps(data))return data常见错误码
| 错误码 | 说明 | 解决方案 |
|---|---|---|
400 |
参数错误 | 检查参数格式与必填项 |
403 |
权限不足 | 确认接口权限已申请 |
500 |
服务端错误 | 稍后重试或联系淘宝技术支持 |
isv.out-of-service |
服务不可用 | 检查接口是否下线或维护 |
AppKey和
AppSecret,定期更新密钥。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046834/viewspace-3096057/ ,如需转载,请注明出处,否则将追究法律责任。