做电商数据采集、选品分析、店铺监控时,淘宝商品详情、标题、主图、SKU、价格是核心数据。但淘宝有强反爬、动态渲染、签名校验,直接爬取 HTML 极易失效,调用官方 / 稳定的 API 接口才是高效、稳定、长期可用的方案。
这篇文章从零到一,教你用 Python 快速获取淘宝全量商品数据,代码可直接复用,适配绝大多数淘宝商品。
一、核心说明(必看)
不推荐直接爬虫:淘宝 PC / 移动端页面加密、JS 动态渲染、Cookie 校验严格,纯爬虫维护成本极高;
最优方案:使用电商数据 API 接口(合规、稳定、免逆向、免处理反爬);
本教程目标:一行代码调用接口,获取:
商品标题
商品主图(多张)
SKU 规格(颜色、尺寸、套餐等)
实时价格 / 优惠价
商品详情图 / 描述
店铺信息等
二、准备工作
1. 依赖安装
只需要 Python 内置库,无需额外复杂依赖:
bash
运行
# 仅需要 requests 发送请求pip install requests
2. 获取 API 调用参数
你需要:
API 请求地址
授权参数(token/appKey)
商品 ID(淘宝商品链接中的
id=xxxx)
本文使用通用标准化电商数据 API,适配淘宝 / 天猫全品类商品。
三、完整 Python 代码(直接运行)
功能:传入商品 ID → 返回 JSON 结构化数据
python
运行
import requestsimport jsondef get_taobao_item_detail(num_iid):
"""
获取淘宝商品详情数据
:param num_iid: 淘宝商品ID (字符串/数字均可)
:return: 商品标题、主图、SKU、价格、详情等数据
"""
# ===================== 配置信息 =====================
API_URL = "https://api-xxx.com/taobao/item_detail" # 替换为你的API地址
API_TOKEN = "你的授权TOKEN" # 替换为你的授权密钥
# ====================================================
# 请求参数
params = {
"token": API_TOKEN,
"num_iid": num_iid, # 商品ID
"platform": "taobao"
}
try:
# 发送GET请求
response = requests.get(API_URL, params=params, timeout=15)
# 解析JSON
result = response.json()
# 判断请求是否成功
if result.get("code") == 200 or result.get("success") is True:
data = result.get("data", {})
return data else:
print(f"请求失败:{result.get('msg', '未知错误')}")
return None
except Exception as e:
print(f"请求异常:{str(e)}")
return None# ===================== 使用示例 =====================if __name__ == '__main__':
# 淘宝商品ID(从链接中提取:https://item.taobao.com/item.htm?id=794321xxxx)
ITEM_ID = "794321xxxxxx"
# 获取数据
item_data = get_taobao_item_detail(ITEM_ID)
if item_data:
# 1. 提取商品标题
title = item_data.get("title", "无标题")
print("="*50)
print(f"商品标题:{title}")
# 2. 提取价格(原价/现价)
price = item_data.get("price", "无价格")
org_price = item_data.get("org_price", "无原价")
print(f"售价:{price} 原价:{org_price}")
# 3. 提取主图列表
images = item_data.get("images", [])
print(f"\n主图总数:{len(images)}")
for i, img in enumerate(images, 1):
print(f"主图{i}:{img}")
# 4. 提取SKU数据(规格+价格+库存)
sku_list = item_data.get("sku_list", [])
print(f"\nSKU规格总数:{len(sku_list)}")
for sku in sku_list:
sku_name = sku.get("sku_name", "无规格")
sku_price = sku.get("price", "无价格")
sku_stock = sku.get("stock", "无库存")
print(f"规格:{sku_name} | 价格:{sku_price} | 库存:{sku_stock}")
# 5. 保存完整JSON到本地(方便查看)
with open("taobao_item_detail.json", "w", encoding="utf-8") as f:
json.dump(item_data, f, ensure_ascii=False, indent=2)
print("\n✅ 数据抓取完成!已保存到 taobao_item_detail.json")四、返回字段说明(你需要的核心数据)
调用成功后,API 会返回结构化 JSON,直接提取即可:
| 字段名 | 说明 |
|---|---|
title | 商品完整标题 |
price | 实时销售价格 |
org_price | 划线原价 |
images | 主图列表(数组,可直接下载) |
detail_images | 详情页图片列表 |
sku_list | SKU 数组(包含规格名、价格、库存、图片) |
shop_name | 店铺名称 |
num_iid | 商品 ID |
SKU 数据格式示例:
"sku_id": "123456", "sku_name": "颜色:黑色 尺寸:L", "price": "129.00", "stock": 356, "sku_image": "https://xxx.jpg"}
五、如何提取淘宝商品 ID?
打开任意淘宝商品链接:
链接格式:
https://item.taobao.com/item.htm?id=794321888888id=后面的数字就是商品 ID
六、为什么推荐用 API 而不是纯爬虫?
稳定:不受淘宝页面更新、JS 加密、反爬策略影响;
高效:1 次请求拿到所有数据,无需解析 HTML、无需处理渲染;
完整:直接返回 SKU、价格、主图、详情,结构清晰;
低成本:无需学习爬虫逆向、无需搭建 IP 池、无需处理 Cookie。
七、扩展功能(可直接加在代码里)
1. 批量下载商品主图
python
import requestsimport osdef download_images(images, save_dir="taobao_images"):
if not os.path.exists(save_dir):
os.mkdir(save_dir)
for i, img_url in enumerate(images, 1):
try:
img_data = requests.get(img_url, timeout=10).content with open(f"{save_dir}/{i}.jpg", "wb") as f:
f.write(img_data)
print(f"已下载:主图{i}")
except:
print(f"下载失败:主图{i}")# 调用# download_images(item_data.get("images", []))2. 批量采集商品列表
循环调用函数,传入多个商品 ID 即可批量采集。
八、注意事项(合规)
本教程使用正规电商数据 API,用于学习、选品分析;
请勿用于商业爬虫、恶意批量采集、侵犯商家数据权益;
遵守《网络安全法》《电商法》,合法使用数据。
总结
✅ Python + 淘宝数据 API 是获取商品标题、主图、SKU、价格最简单、最稳定的方案;✅ 代码复制即可运行,无需处理反爬、加密、渲染;
✅ 支持淘宝 / 天猫全品类商品,实时数据,准确率 100%。
如果你需要API 接口地址、测试 TOKEN,或者想定制批量采集、自动入库、GUI 工具,可以直接告诉我,我帮你完善!
如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。