淘宝利用商品关键词获取商品信息指南

一、核心API接口选择

接口名称 功能描述 适用场景
taobao.items.search 通过关键词搜索商品,支持分页、排序,返回商品列表(含标题、价格、销量、图片等) 普通商品搜索、竞品监控、数据分析
taobao.tbk.item.get 淘宝客API,返回含佣金信息的商品数据(需绑定淘宝客账号) 推广返利类应用、佣金分析
taobao.item.search_shop 通过店铺ID获取商品,支持分页(用户需求聚焦关键词,故作为补充) 店铺商品全量获取、竞品店铺分析

二、调用流程详解

1. 注册与认证

  • 步骤

    1. 访问淘宝开放平台注册开发者账号,完成实名认证。
    2. 创建应用,选择类型为"自用型"或"他用型",提交审核后获取AppKeyAppSecret
    3. 在应用详情页申请接口权限(如taobao.items.searchtaobao.tbk.item.get)。

2. 签名生成方法

  • 步骤

    1. 将所有请求参数(除sign外)按字母升序排列。
    2. 拼接参数名和参数值,首尾各追加AppSecret
    3. 对拼接字符串进行MD5加密并转为大写。
  • 示例代码(Python)

    scss 复制代码
    python
    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 if k != 'sign') + app_secret
        return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()

3. 请求构造

  • 必填参数

    参数名 示例值 描述
    method taobao.items.search API接口名称
    app_key YOUR_APP_KEY 应用AppKey
    timestamp 2025-08-30 10:00:00 时间戳(GMT+8)
    format json 响应格式
    v 2.0 API协议版本
    sign_method md5 签名算法
  • 业务参数

    参数名 示例值 描述
    q 手机 搜索关键词
    page_no 1 当前页码
    page_size 10 每页商品数量
    sort price_asc 排序方式(价格升序)

三、返回数据解析

1. 基础字段说明

字段名 示例值 描述
num_iid 123456789 商品唯一ID
title 夏季新款连衣裙 商品标题
price 199.00 当前售价
original_price 299.00 原价
pic_url https://img.alicdn.com/xxx.jpg 商品主图URL
sales 200 30天销量
detail_url https://item.taobao.com/item.htm?id=123456789 商品详情页链接

2. 排序与分页

  • 排序 :通过sort参数实现,支持price_asc(价格升序)、price_desc(价格降序)、sales(销量)。

  • 分页 :通过page_nopage_size控制,示例:

    ini 复制代码
    python
    for page in range(1, total_pages + 1):
        data = api.search_items(keyword, page_no=page)

3. 特殊场景字段(淘宝客API)

字段名 示例值 描述
tk_rate 12.34 佣金比率(百分比)
coupon_info 满99减10 优惠券信息
zk_final_price 88.00 折扣后价格

四、完整代码示例(Python)

python 复制代码
python
import requests
import hashlib
import time
 
class TaobaoAPI:
    def __init__(self, app_key, app_secret):
        self.app_key = app_key
        self.app_secret = app_secret
        self.api_url = "https://eco.taobao.com/router/rest"
 
    def generate_sign(self, params):
        sorted_params = sorted(params.items())
        sign_str = self.app_secret + ''.join(f"{k}{v}" for k, v in sorted_params if k != 'sign') + self.app_secret
        return hashlib.md5(sign_str.encode()).hexdigest().upper()
 
    def search_items(self, keyword, page_no=1, page_size=40):
        params = {
            "method": "taobao.items.search",
            "app_key": self.app_key,
            "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
            "format": "json",
            "v": "2.0",
            "sign_method": "md5",
            "q": keyword,
            "page_no": page_no,
            "page_size": page_size,
            "fields": "num_iid,title,price,original_price,pic_url,sales,detail_url"
        }
        params["sign"] = self.generate_sign(params)
        response = requests.get(self.api_url, params=params)
        return response.json()
 
# 使用示例
if __name__ == "__main__":
    api = TaobaoAPI("YOUR_APP_KEY", "YOUR_APP_SECRET")
    data = api.search_items("手机", page_no=1, page_size=10)
    print(data)

五、注意事项

  1. 频率限制:普通应用每分钟≤100次,需合理设计分页逻辑,避免频繁请求。

  2. 数据合规:禁止爬取敏感信息(如用户隐私),需遵守淘宝开放平台协议。

  3. 错误处理

    • 检查返回码(如200表示成功),处理签名错误、参数缺失等问题。

    • 示例错误响应:

      css 复制代码
      json
      {
          "error_response": {
              "code": "1001",
              "msg": "参数缺失"
          }
      }
  4. 数据更新:商品信息可能延迟,重要场景需结合实时数据或官方推送服务。

六、替代方案

  • 无淘宝客权限 :使用第三方数据服务,如万邦开放平台(需注意合法性)。
  • 浏览器自动化:模拟用户行为(不推荐,违反淘宝规则)。

通过以上步骤,可高效利用淘宝API实现商品关键词搜索及数据获取。

相关推荐
子兮曰8 小时前
🚀 震惊!这20个现代JavaScript API,让90%的前端开发者直呼"相见恨晚"!
javascript·api
onelafite11 小时前
淘宝/天猫店铺商品搜索API(taobao.item_search_shop)返回值详解
api·fastapi
RestCloud1 天前
iPaaS实施的前提是先进行集成关系的梳理
api
用户268001379191 天前
小红书笔记详情API接口系列,json数据返回
api
RestCloud2 天前
通过ETL工具,同步SQLserver数据至starrocks数据库
api
RestCloud2 天前
爆单不慌!RestCloud iPaaS让618双11财务对账丝滑到飞起
api
wuzuyu3652 天前
SyntaxError: Failed to execute ‘open‘ on ‘XMLHttpRequest‘: Invalid URL
ajax·html·api
老顾聊技术3 天前
网关如何聚合各个微服务的接口文档?
微服务·api
万粉变现经纪人3 天前
如何解决pip安装报错ModuleNotFoundError: No module named ‘websockets’问题
ide·pycharm·beautifulsoup·pandas·fastapi·pip·httpx