要高效获取淘宝商品的主图、视频、SKU图片、SKU文字、SKU价格、产品规格及属性,推荐使用淘宝开放平台的 taobao.item_get_pro 接口(或类似高级API)。以下是完整解决方案:
一、推荐接口:taobao.item_get_pro
请求示例:
import requests
import hashlib
import time
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
session = "USER_SESSION_KEY" # 用户授权后的session
# 封装好API供应商demo url=o0b.cn/ibrad
# 构造公共参数
params = {
"method": "taobao.item.get.pro", # 或 taobao.item.get
"app_key": app_key,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"sign_method": "md5",
"session": session,
"num_iid": "商品ID", # 如:677154234599
"fields": "item_img,videos,skus,props_name,property_alias,price"
}
# 生成签名
param_str = app_secret + ''.join(f"{k}{params[k]}" for k in sorted(params.keys())) + app_secret
sign = hashlib.md5(param_str.encode()).hexdigest().upper()
params["sign"] = sign
# 发送请求
response = requests.get("https://eco.taobao.com/router/rest", params=params)
data = response.json()
二、关键字段解析(fields 参数)
在请求中指定以下字段,可获取所需数据:
fields = """ item_img, # 主图列表 videos, # 商品视频 skus, # SKU信息(含图片、价格、规格) props_name, # 商品属性 property_alias, # SKU文字描述 price # 商品价格 """
三、返回数据示例
{
"item": {
"item_imgs": [
{"url": "https://img.alicdn.com/imgextra/i1/O1CN01j...jpg"},
{"url": "https://img.alicdn.com/imgextra/i2/O1CN01..."}
],
"videos": [
{"url": "https://cloud.video.taobao.com/play/u/...mp4"}
],
"skus": {
"sku": [
{
"sku_id": "123456789",
"price": "199.00",
"properties": "1627207:28332", // 属性ID
"properties_name": "颜色分类:黑色;尺码:S",
"sku_image": {
"url": "https://img.alicdn.com/imgextra/..."
}
}
]
},
"props_name": "品牌:XX;材质:棉", // 商品属性
"property_alias": "颜色分类:黑色=1627207:28332;尺码:S=20509:28315" // SKU文字映射
}
}
四、数据处理技巧
SKU图片匹配
通过 skus.sku.sku_image.url 直接获取每个SKU对应的图片。
SKU文字描述
解析 property_alias + props_name:
# 示例:将属性ID映射为文字 prop_map = {} for pair in data['item']['property_alias'].split(';'):
k, v = pair.split(':') prop_map[v] = k # 如 "1627207:28332" -> "颜色分类:黑色"
第三方工具
如使用 Taobao API Pro 等中转服务(注意数据安全)。
通过以上方法,可稳定获取淘宝商品的完整数据。建议优先使用官方API保障合规性,若数据量较小可结合页面解析作为补充。