全部
常见问题
产品动态
精选推荐

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

管理 管理 编辑 删除

一、引言

在电商数据分析、竞品监控、商品比价等应用场景中,获取淘宝店铺的所有商品信息是一项基础且关键的需求。淘宝开放平台提供了相应的 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

import hashlib
import time
import json
import requests
# 假设API接口地址 
api_url = "c0b.cc/R4rbK2    wechat id:Taobaoapi2014"
    
    # 初始化API客户端
    client = TaobaoApiClient(APP_KEY, APP_SECRET, REDIRECT_URI)
    
    # 步骤1: 获取授权URL,引导用户授权
    print("请访问以下URL进行授权:")
    print(client.get_authorize_url())
    
    # 步骤2: 用户授权后,获取授权码
    auth_code = input("请输入授权码: ")
    
    # 步骤3: 获取access_token
    token_result = client.get_access_token(auth_code)
    print(f"获取access_token成功: {token_result['access_token']}")
    
    # 步骤4: 获取店铺商品列表
    try:
        # 指定需要返回的字段
        fields = "num_iid,title,price,pic_url,num,list_time,delist_time"
        
        # 分页获取所有商品
        all_items = []
        page_no = 1
        
        while True:
            result = client.get_shop_items(
                fields=fields,
                page_no=page_no,
                page_size=100,  # 每页最大100条
                order_by="list_time:desc"  # 按上架时间降序
            )
            
            # 检查是否有错误
            if "error_response" in result:
                error = result["error_response"]
                raise Exception(f"API调用错误: {error['code']} - {error['msg']}")
            
            # 获取商品列表
            items = result.get("items_onsale_get_response", {}).get("items", {}).get("item", [])
            all_items.extend(items)
            
            # 获取总记录数和当前页
            total_results = result.get("items_onsale_get_response", {}).get("total_results", 0)
            print(f"已获取第{page_no}页,共{len(items)}条商品,累计{len(all_items)}条,总计{total_results}条")
            
            # 判断是否还有下一页
            if len(items) == 0 or len(all_items) >= total_results:
                break
                
            page_no += 1
        
        print(f"成功获取所有商品,共{len(all_items)}条")
        
        # 保存商品数据到文件
        with open("taobao_shop_items.json", "w", encoding="utf-8") as f:
            json.dump(all_items, f, ensure_ascii=False, indent=2)
        print("商品数据已保存到 taobao_shop_items.json")
        
    except Exception as e:
        print(f"请求出错: {str(e)}")

注意事项

  1. 分页处理:由于 API 每次最多返回 100 条数据,对于商品数量较多的店铺,需要使用分页循环获取。
  2. 签名机制:淘宝 API 要求所有请求都需要进行签名验证,确保请求的合法性。
  3. 授权有效期:access_token 有有效期,过期后需要使用 refresh_token 刷新。

通过以上步骤,你可以实现获取淘宝店铺所有商品的功能,并进行进一步的数据处理和分析。

请登录后查看

用户19970108018 最后编辑于2025-05-13 11:23:31

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
26
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服