本文基于淘宝开放平台 item_search_shop 接口,提供完整的参数说明、代码实现及实战注意事项,助您快速获取指定店铺所有商品数据。
一、接口概述
核心功能
获取指定店铺内所有商品的详细信息,包括商品ID、标题、价格、销量、图片链接等。 支持分页查询(默认每页60条)与排序规则(按价格、销量、新品等排序)。
适用场景
数据分析:监控商品价格波动、库存变化及销售趋势; 竞品监控:实时获取竞争对手店铺商品动态; 第三方应用:构建商品比价平台或代购系统。
二、接口参数说明
参数 类型 必填 描述
seller_id String 是 卖家ID或店铺ID,用于唯一标识目标店铺
page Int 否 分页页码,默认1,每页返回60条数据
sort String 否 排序方式:new(新品)、bid(价格升序)、bid_(价格降序)、sale(销量)
app_key String 是 开发者身份凭证,需在淘宝开放平台注册应用获取
sign String 是 请求签名,通过app_secret和参数生成,确保请求合法性
三、Python代码示例
python
Copy Code
import requests
import hashlib
import time
配置参数
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
seller_id = "2568161054" # 示例店铺ID
生成签名
def generate_sign(params):
params_str = ''.join([f"{k}{v}" for k, v in sorted(params.items())])
sign_str = app_secret + params_str + app_secret
return hashlib.md5(sign_str.encode()).hexdigest().upper()
请求商品列表
def fetch_shop_products(page=1, sort="new"):
params = {
"method": "taobao.item_search_shop",
"seller_id": seller_id,
"page": page,
"sort": sort,
"app_key": app_key,
"timestamp": int(time.time()),
"format": "json",
"v": "2.0"
}
params["sign"] = generate_sign(params)
response = requests.get("https://gw.api.taobao.com/router/rest", params=params)
return response.json()
示例调用
data = fetch_shop_products(page=1, sort="bid_")
print(data)
代码说明:
签名生成:通过拼接参数和应用密钥生成MD5签名,确保请求合法性; 分页处理:通过循环递增page参数实现全量数据抓取; 数据解析:返回JSON格式数据,需提取data.products字段获取商品列表。 四、注意事项 权限申请:需在淘宝开放平台注册开发者账号并申请item_search_shop接口权限; 分页限制:单次请求最多返回60条数据,需循环调用接口直至total_results遍历完成; 频率控制:淘宝API对调用频率有限制(通常每分钟500次),需避免触发风控; 数据更新:商品价格、库存等信息可能实时变动,建议定时更新数据。
参考文档:
淘宝开放平台API文档 代码中 YOUR_APP_KEY 和 YOUR_APP_SECRET 需替换为实际值。