×

Python 爬虫实战:获取淘宝商品详情(标题、主图、SKU、价格)完整接口方案

admin admin 发表于2026-05-06 17:09:04 浏览9 评论0

抢沙发发表评论

做电商数据采集、选品分析、店铺监控时,淘宝商品详情、标题、主图、SKU、价格是核心数据。但淘宝有强反爬、动态渲染、签名校验,直接爬取 HTML 极易失效,调用官方 / 稳定的 API 接口才是高效、稳定、长期可用的方案。
这篇文章从零到一,教你用 Python 快速获取淘宝全量商品数据,代码可直接复用,适配绝大多数淘宝商品。

一、核心说明(必看)

  1. 不推荐直接爬虫:淘宝 PC / 移动端页面加密、JS 动态渲染、Cookie 校验严格,纯爬虫维护成本极高;

  2. 最优方案:使用电商数据 API 接口(合规、稳定、免逆向、免处理反爬);

  3. 本教程目标:一行代码调用接口,获取:

    • 商品标题

    • 商品主图(多张)

    • 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_listSKU 数组(包含规格名、价格、库存、图片)
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=794321888888

  • id= 后面的数字就是商品 ID


六、为什么推荐用 API 而不是纯爬虫?

  1. 稳定:不受淘宝页面更新、JS 加密、反爬策略影响;

  2. 高效:1 次请求拿到所有数据,无需解析 HTML、无需处理渲染;

  3. 完整:直接返回 SKU、价格、主图、详情,结构清晰;

  4. 低成本:无需学习爬虫逆向、无需搭建 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 即可批量采集。

八、注意事项(合规)

  1. 本教程使用正规电商数据 API,用于学习、选品分析;

  2. 请勿用于商业爬虫、恶意批量采集、侵犯商家数据权益;

  3. 遵守《网络安全法》《电商法》,合法使用数据。


总结

Python + 淘宝数据 API 是获取商品标题、主图、SKU、价格最简单、最稳定的方案;✅ 代码复制即可运行,无需处理反爬、加密、渲染;

✅ 支持淘宝 / 天猫全品类商品,实时数据,准确率 100%。

如果你需要API 接口地址、测试 TOKEN,或者想定制批量采集、自动入库、GUI 工具,可以直接告诉我,我帮你完善!


如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。


群贤毕至

访客