深度解析淘宝天猫店铺所有商品API接口,一文带你吃透

淘宝 淘宝 3757 人阅读 | 0 人回复 | 2025-05-13

一、引言在电商数据分析、竞品监控、商品比价等应用场景中,获取淘宝店铺的所有商品信息是一项基础且关键的需求。淘宝开放平台提供了相应的 API 接口,允许开发者通过授权后访问店铺商品数据。本文将详细介绍淘宝店铺所有商品 API 接口的使用方法,并提供 Python 实现示例。
二、接口概述淘宝开放平台提供了多个与店铺商品相关的 API 接口,其中获取店铺所有商品的核心接口是 tb.items.onsale.get(获取当前会话用户出售中的商品列表)和 tb.items.inventory.get(获取当前会话用户的库存商品列表)。
接口基本信息
  • API 名称:taobao.items.search.shop
  • 功能描述:获取当前会话用户出售中的商品列表,可分页获取
  • 请求方式:HTTP POST
  • 响应格式:JSON
返回参数
接口返回一个包含商品列表的 JSON 对象,主要字段包括:
  • total_results:商品总数
  • items:商品列表
  • 每个商品包含的字段:num_iid(商品 ID)、title(标题)、price(价格)、pic_url(图片 URL)等
三、Python 请求示例下面是一个使用 Python 请求淘宝店铺所有商品 API 的示例代码:
python
  1. import hashlib
  2. import time
  3. import json
  4. import requests
  5. # 假设API接口地址
  6. api_url = "c0b.cc/R4rbK2    wechat id:Taobaoapi2014"
  7.    
  8.     # 初始化API客户端
  9.     client = TaobaoApiClient(APP_KEY, APP_SECRET, REDIRECT_URI)
  10.    
  11.     # 步骤1: 获取授权URL,引导用户授权
  12.     print("请访问以下URL进行授权:")
  13.     print(client.get_authorize_url())
  14.    
  15.     # 步骤2: 用户授权后,获取授权码
  16.     auth_code = input("请输入授权码: ")
  17.    
  18.     # 步骤3: 获取access_token
  19.     token_result = client.get_access_token(auth_code)
  20.     print(f"获取access_token成功: {token_result['access_token']}")
  21.    
  22.     # 步骤4: 获取店铺商品列表
  23.     try:
  24.         # 指定需要返回的字段
  25.         fields = "num_iid,title,price,pic_url,num,list_time,delist_time"
  26.         
  27.         # 分页获取所有商品
  28.         all_items = []
  29.         page_no = 1
  30.         
  31.         while True:
  32.             result = client.get_shop_items(
  33.                 fields=fields,
  34.                 page_no=page_no,
  35.                 page_size=100,  # 每页最大100条
  36.                 order_by="list_time:desc"  # 按上架时间降序
  37.             )
  38.             
  39.             # 检查是否有错误
  40.             if "error_response" in result:
  41.                 error = result["error_response"]
  42.                 raise Exception(f"API调用错误: {error['code']} - {error['msg']}")
  43.             
  44.             # 获取商品列表
  45.             items = result.get("items_onsale_get_response", {}).get("items", {}).get("item", [])
  46.             all_items.extend(items)
  47.             
  48.             # 获取总记录数和当前页
  49.             total_results = result.get("items_onsale_get_response", {}).get("total_results", 0)
  50.             print(f"已获取第{page_no}页,共{len(items)}条商品,累计{len(all_items)}条,总计{total_results}条")
  51.             
  52.             # 判断是否还有下一页
  53.             if len(items) == 0 or len(all_items) >= total_results:
  54.                 break
  55.                
  56.             page_no += 1
  57.         
  58.         print(f"成功获取所有商品,共{len(all_items)}条")
  59.         
  60.         # 保存商品数据到文件
  61.         with open("taobao_shop_items.json", "w", encoding="utf-8") as f:
  62.             json.dump(all_items, f, ensure_ascii=False, indent=2)
  63.         print("商品数据已保存到 taobao_shop_items.json")
  64.         
  65.     except Exception as e:
  66.         print(f"请求出错: {str(e)}")
复制代码

注意事项
  • 分页处理:由于 API 每次最多返回 100 条数据,对于商品数量较多的店铺,需要使用分页循环获取。
  • 签名机制:淘宝 API 要求所有请求都需要进行签名验证,确保请求的合法性。
  • 授权有效期:access_token 有有效期,过期后需要使用 refresh_token 刷新。
通过以上步骤,你可以实现获取淘宝店铺所有商品的功能,并进行进一步的数据处理和分析。


关注下面的话题,发现更多精彩
回复

使用道具 举报

高级模式
B Color Link Quote Code Smilies

本版积分规则

资深数据从业者,专注电商数据爬虫领域多年。电商接口体验:c0b.cc/R4rbK2,交流19970108018
79
获赞
2
内容
3
关注
0
粉丝

TA的资料

  • 认证信息:暂无认证
  • 勋章荣誉:暂无信息
  • 身份信息:资源商
  • 经营领域:淘宝, 京东, 1688
  • 居住地址:江西省新余市渝水区城北街道
  • 主营产品:电商数据接口+淘宝代购系统

TA的作品