淘宝item_get_pro接口轻松拿取商品 主图 视频 SKU图片 SKU文字 SKU价格 产品规格 属性

0 阅读2分钟

要高效获取淘宝商品的主图、视频、SKU图片、SKU文字、SKU价格、产品规格及属性,推荐使用淘宝开放平台的 taobao.item_get_pro 接口(或类似高级API)。以下是完整解决方案:


一、推荐接口:taobao.item_get_pro

这是淘宝官方的高级API,支持返回商品全量数据。

请求示例:

import requests
import hashlib
import time

app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
session = "USER_SESSION_KEY"  # 用户授权后的session

# 构造公共参数
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文字映射
  }
}

四、数据处理技巧

  1. SKU图片匹配
    通过 skus.sku.sku_image.url 直接获取每个SKU对应的图片。

  2. 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" -> "颜色分类:黑色"
    

五、备选方案(无需API权限)

若无法开通高级API,可尝试:

  1. 淘宝商品详情页爬取
    使用 requests + BeautifulSoup 解析页面,但需处理动态加载(如SKU数据在JS中):

    import re
    url = "https://item.taobao.com/item.htm?id=商品ID"
    html = requests.get(url).text
    
    # 提取SKU数据(示例正则)
    sku_data = re.search(r'var skuData = ({.*?});', html).group(1)
    

    注意:需遵守淘宝Robots协议,大规模抓取有封禁风险。

  2. 第三方工具
    如使用 Taobao API 等中转服务(注意数据安全)。


通过以上方法,可稳定获取淘宝商品的完整数据。建议优先使用官方API保障合规性,若数据量较小可结合页面解析作为补充。