淘宝关键词商品信息获取API实战指南

4 阅读3分钟

一、核心流程与工具准备

  1. 平台注册与认证

    • 访问淘宝开放平台,完成企业/个人实名认证,提交营业执照或身份证信息,审核周期1-3个工作日。
    • 创建应用后获取AppKeyAppSecret,这是调用API的唯一身份标识。
  2. 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()

四、关键注意事项

  1. 频率限制与缓存

    • 使用Redis缓存商品数据,设置1小时过期时间,减少API调用频次。
    • 分布式部署调用节点时,需通过IP轮询或代理池突破单IP限制。
  2. 数据合规与安全

    • 禁止存储用户隐私字段(如手机号、地址),违反将封禁API权限。
    • 图片URL需通过阿里OSS中转,防止盗链;妥善保管AppKeyAppSecret
  3. 错误处理

    • 检查响应中的error_response字段,处理常见错误码(如400参数错误、403权限不足)。
    • 使用try-except捕获网络请求异常,避免程序崩溃。

五、替代方案与工具推荐

  • 淘宝客API:适用于推广场景,可获取佣金比率、优惠券信息,需配置淘宝客PID。
  • 第三方数据服务:如万邦开放平台,需验证数据合法性,注意法律风险。
  • 官方SDK:阿里云开发者社区提供developer.aliyun.com/sdk/python,简化调用流程。

通过以上步骤,可合规获取淘宝商品信息,实现电商数据分析、比价系统、选品工具等业务场景。具体参数和返回字段需以open.taobao.com/api.htm为准,定期关注接口更新。