一、文章主题
《极简版:Python 调用淘宝店铺所有商品 API,获取全店商品 JSON 数据》
二、核心内容
1. 核心接口(快速落地)
重点使用 淘宝官方核心接口,无需复杂逆向,适合新手 / 商家 / 运营,覆盖全店商品采集:
- 核心接口:
taobao.items.onsale.get(获取在售商品)、taobao.shop.get.items(全量商品) - 适用场景:店铺商品同步、竞品分析、库存监控
- 关键要求:需淘宝开放平台 AppKey、AppSecret、店铺授权 token
2. 极简调用代码(直接复制运行)
python
运行
import requests import time import hashlib # 替换为自己的配置 APP_KEY = "你的AppKey" APP_SECRET = "你的AppSecret" ACCESS_TOKEN = "你的店铺授权token" SHOP_NICK = "目标店铺昵称" # 签名生成(淘宝API必传) def generate_sign(params): sorted_params = sorted(params.items()) param_str = "".join(f"{k}{v}" for k, v in sorted_params) return hashlib.md5(f"{APP_SECRET}{param_str}{APP_SECRET}".encode()).hexdigest().upper() # 获取店铺在售商品(返回JSON) def get_shop_items(page_no=1): params = { "method": "taobao.items.onsale.get", "app_key": APP_KEY, "session": ACCESS_TOKEN, "fields": "num_iid,title,price,stock,volume,pic_url", "page_no": page_no, "page_size": 100, "format": "json", "v": "2.0", "timestamp": time.strftime("%Y-%m-%d %H:%M:%S") } params["sign"] = generate_sign(params) resp = requests.post("https://eco.taobao.com/router/rest", data=params) return resp.json() # 调用示例 if __name__ == "__main__": json_data = get_shop_items() print(json_data)
3. 标准 JSON 数据反馈参考(核心字段)
json
{ "taobao_items_onsale_get_response": { "code": 0, "msg": "success", "items": { "item": [ { "num_iid": "123456789012", "title": "淘宝商品标题(含规格/品牌)", "price": "199.00", "stock": 156, "volume": 328, "pic_url": "https://img.alicdn.com/xxx.jpg" }, { "num_iid": "123456789013", "title": "第二款商品标题", "price": "299.00", "stock": 89, "volume": 156, "pic_url": "https://img.alicdn.com/xxx.jpg" } ] }, "total_results": 286, "page_no": 1, "page_size": 100 } }
4. 关键说明
- 限流:个人开发者≤2QPS,企业≤50QPS,加
time.sleep(1)防封禁 - 字段解析:
num_iid(商品 ID)、volume(销量)、stock(库存)为核心字段 - 分页:通过
page_no循环,直到item为空,获取全店商品