淘宝商品 API 接口,开发者详解与使用指南

简介: 淘宝开放平台提供丰富的商品API,支持获取商品详情、搜索及批量查询功能。主要接口包括taobao.item.get、taobao.items.search和taobao.items.list,需申请权限并完成认证授权。开发者可通过AppKey/AppSecret与签名机制调用API,适用于电商选品、价格监控、比价应用等场景。本文含完整Python调用示例与常见问题解决方案。

淘宝开放平台提供了丰富的商品 API 接口,可用于获取商品详情、搜索商品、查询商品列表等功能。以下是对淘宝商品 API 的深度解析和使用示例:
一、核心商品 API 接口

  1. 商品详情 API (taobao.item.get)
    功能:获取单个商品的详细信息
    权限:需申请
    参数:
    num_iid:商品 ID(必选)
    fields:返回字段列表(如 title,price,pic_url 等)
  2. 商品搜索 API (taobao.items.search)
    功能:根据关键词搜索商品
    权限:需申请
    参数:
    q:搜索关键词(必选)
    page_no:页码
    page_size:每页数量
    sort:排序方式(price_asc,price_desc 等)
  3. 商品列表 API (taobao.items.list)
    功能:批量获取商品信息
    权限:需申请
    参数:
    num_iids:商品 ID 列表(最多 40 个)
    fields:返回字段列表
    二、API 调用流程
  4. 认证与授权
    AppKey & AppSecret:创建应用后获取
    签名机制:使用 MD5 算法生成签名
    OAuth2.0:部分接口需要用户授权
  5. 签名生成示例
    python
    运行
    import hashlib

def generate_sign(params, app_secret):
"""生成API签名"""

# 1. 参数排序
sorted_params = sorted(params.items(), key=lambda x: x[0])

# 2. 拼接字符串
sign_str = app_secret
for k, v in sorted_params:
    sign_str += f"{k}{v}"
sign_str += app_secret

# 3. MD5加密
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()

三、完整代码示例
以下是使用 Python 实现淘宝商品 API 调用的完整示例:
python
运行
import hashlib
import time
import requests
import json

class TaobaoAPI:
def init(self, app_key, app_secret):
"""初始化淘宝API客户端"""
self.app_key = app_key
self.app_secret = app_secret
self.api_url = "https://eco.taobao.com/router/rest"

def generate_sign(self, params):
    """生成API签名"""
    sorted_params = sorted(params.items(), key=lambda x: x[0])
    sign_str = self.app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + self.app_secret
    return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()

def call(self, method, params=None):
    """通用API调用方法"""
    if params is None:
        params = {}

    # 公共参数
    common_params = {
        "app_key": self.app_key,
        "method": method,
        "format": "json",
        "v": "2.0",
        "timestamp": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
        "sign_method": "md5"
    }

    # 合并参数
    all_params = {**common_params, **params}

    # 生成签名
    all_params["sign"] = self.generate_sign(all_params)

    # 发送请求
    response = requests.get(self.api_url, params=all_params)
    return response.json()

class TaobaoItemAPI(TaobaoAPI):
def get_item_detail(self, item_id, fields="num_iid,title,price,pic_url,item_desc"):
"""获取商品详情"""
method = "taobao.item.get"
params = {
"num_iid": item_id,
"fields": fields
}
return self.call(method, params)

def search_items(self, keyword, page=1, page_size=20, sort="default"):
    """搜索商品"""
    method = "taobao.items.search"
    params = {
        "q": keyword,
        "page_no": page,
        "page_size": page_size,
        "sort": sort,
        "fields": "num_iid,title,nick,price,pic_url,sell_count"
    }
    return self.call(method, params)

def get_items_list(self, item_ids, fields="num_iid,title,price,pic_url"):
    """批量获取商品信息"""
    method = "taobao.items.list"
    params = {
        "num_iids": ",".join(map(str, item_ids)),
        "fields": fields
    }
    return self.call(method, params)

使用示例
if name == "main":

# 替换为你的AppKey和AppSecret
app_key = "你的AppKey"
app_secret = "你的AppSecret"

# 初始化API客户端
api = TaobaoItemAPI(app_key, app_secret)

# 1. 获取单个商品详情
item_detail = api.get_item_detail(612345678901)
print(f"商品详情: {json.dumps(item_detail, ensure_ascii=False, indent=2)}")

# 2. 搜索商品
search_result = api.search_items("iPhone 15", page=1, page_size=10, sort="price_asc")
print(f"搜索结果: {len(search_result.get('items_search_response', {}).get('items', {}).get('item', []))}个商品")

# 3. 批量获取商品
items_list = api.get_items_list([612345678901, 623456789012])
print(f"批量获取: {len(items_list.get('items_list_response', {}).get('items', {}).get('item', []))}个商品")

四、API 响应数据结构

  1. 商品详情响应示例
    json
    {
    "item_get_response": {
    "item": {
    "num_iid": 612345678901,
    "title": "Apple iPhone 15 256GB 黑色 全网通",
    "price": "7999.00",
    "original_price": "8999.00",
    "pic_url": "https://img.alicdn.com/item.jpg",
    "item_desc": "全新Apple iPhone 15...",
    "num": 100,
    "seller_cids": "50011993",
    "props": [
     {"name": "品牌", "value": "Apple"},
     {"name": "型号", "value": "iPhone 15"},
     {"name": "颜色", "value": "黑色"},
     {"name": "内存容量", "value": "256GB"}
    
    ],
    "location": "广东 深圳",
    "created": "2025-01-01 12:00:00",
    "modified": "2025-07-01 10:30:00"
    }
    }
    }
  2. 商品搜索响应示例
    json
    {
    "items_search_response": {
    "total_results": 1258,
    "items": {
    "item": [
     {
       "num_iid": 612345678901,
       "title": "Apple iPhone 15 256GB 黑色 全网通",
       "nick": "苹果官方旗舰店",
       "price": "7999.00",
       "pic_url": "https://img.alicdn.com/item.jpg",
       "sell_count": "1234"
     },
     {
       "num_iid": 623456789012,
       "title": "iPhone 15 Pro 256GB 暗紫色 全网通",
       "nick": "授权经销商",
       "price": "9999.00",
       "pic_url": "https://img.alicdn.com/item2.jpg",
       "sell_count": "876"
     }
    
    ]
    }
    }
    }
    五、关键参数与使用技巧
  3. 常用筛选参数
    price_from/price_to:价格区间
    is_tmall:是否天猫商品
    has_discount:是否有折扣
    location:发货地
  4. 分页处理
    page_no:页码(默认 1)
    page_size:每页数量(最大 40)
    total_results:总结果数(用于计算总页数)
  5. 性能优化
    批量请求:使用items.list接口减少请求次数
    缓存机制:对不经常变化的数据设置缓存
    异步处理:使用 asyncio/aiohttp 实现并发请求
    六、常见问题与解决方案
  6. 签名错误
    原因:参数排序错误、时间戳偏差
    解决方案:
    确保参数按字典序排序
    同步服务器时间(误差不超过 15 分钟)
  7. 权限不足
    原因:未申请或未通过接口权限审核
    解决方案:
    在开放平台申请相应权限
    完善应用信息和使用场景说明
  8. 频率限制
    默认配额:新应用 500 次 / 天
    解决方案:
    控制请求频率
    申请提升 API 调用配额
    七、应用场景
    电商选品工具:分析商品价格、销量和评价
    价格监控系统:跟踪特定商品价格变化
    比价应用:对比不同店铺商品价格
    数据采集与分析:获取市场数据用于商业决策
    通过淘宝商品 API,开发者可以构建功能丰富的电商应用和工具。在实际开发中,建议根据业务需求合理选择 API 接口,注意数据处理和性能优化,并遵守淘宝开放平台的使用规范。
相关文章
|
9月前
|
JSON API 数据格式
亚马逊商品评论API接口技术指南
亚马逊商品评论API可程序化获取指定ASIN商品的用户评价,包含评分、内容、时间等结构化数据。需企业认证并遵守使用协议,日调用上限500次。支持分页与排序查询,适用于竞品分析、口碑监测等场景,结合SP-API可构建完整电商数据方案。(238字)
|
9月前
|
JSON 缓存 算法
如何通过API获取1688商品类目数据:技术实现指南
1688开放平台提供alibaba.category.get接口,支持获取全量商品类目树。RESTful架构,返回JSON数据,含类目ID、名称、层级等信息。需注册账号、创建应用并授权。请求需签名认证,QPS限10次,建议缓存更新周期≥24小时。
|
9月前
|
JSON 安全 API
亚马逊商品列表API秘籍!轻松获取商品列表数据
亚马逊商品列表API(SP-API)提供标准化接口,支持通过关键词、分类、价格等条件搜索商品,获取ASIN、价格、销量等信息。采用OAuth 2.0认证与AWS签名,保障安全。数据以JSON格式传输,便于开发者批量获取与分析。
|
9月前
|
数据采集 JSON API
微店API使用指南:高效获取商品列表数据
本文介绍如何使用Python爬虫调用微店item_search接口,根据关键词搜索商品并获取商品列表数据,涵盖请求方式、JSON数据解析、分页参数设置及筛选排序功能,适用于电商数据分析与竞品研究。
|
9月前
|
JSON API 数据格式
淘宝拍立淘按图搜索API系列,json数据返回
淘宝拍立淘按图搜索API系列通过图像识别技术实现商品搜索功能,调用后返回的JSON数据包含商品标题、图片链接、价格、销量、相似度评分等核心字段,支持分页和详细商品信息展示。以下是该API接口返回的JSON数据示例及详细解析:
|
9月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
9月前
|
JSON 算法 API
1688比价API接口:实现商品价格高效比较的技术指南
本文介绍1688比价API的核心功能与实战应用,涵盖接口调用、Python代码实现及价格比较算法优化。助您快速集成商品比价功能,提升电商开发效率。
1294 3
|
9月前
|
JSON 安全 API
淘宝天猫上货API接口技术指南
本文介绍淘宝天猫上货API,详解其RESTful接口原理、认证流程及Python调用示例。涵盖商品添加、签名生成、响应处理,并提供代码实现与最佳实践,助力开发者高效实现自动化批量上架。
1003 3
|
9月前
|
存储 缓存 算法
淘宝买家秀 API 深度开发:多模态内容解析与合规推荐技术拆解
本文详解淘宝买家秀接口(taobao.reviews.get)的合规调用、数据标准化与智能推荐全链路方案。涵盖权限申请、多模态数据清洗、情感分析、混合推荐模型及缓存优化,助力开发者提升审核效率60%、商品转化率增长28%,实现UGC数据高效变现。
|
9月前
|
存储 供应链 API
1688获得店铺所有商品的API接口
本文介绍如何通过1688开放平台API获取指定店铺的全部商品信息,涵盖注册、认证、分页调用及Python代码实现,适用于数据同步、库存管理与电商分析,内容真实可靠,步骤清晰易行。