实战解析:淘宝/天猫商品描述API(taobao.item_get_desc)接口

以下内容基于真实抓包与社区逆向方案,给出一份可直接落地的 taobao.item_get_desc(商品描述 HTML)实战笔记,涵盖接口定位、签名逻辑、代码模板与常见坑,帮助你 10 分钟内拿到淘宝/天猫商品完整图文详情。


一、接口定位:为什么一定要" Desc "

  1. 官方开放平台 商品描述字段,最高权限仅输出标题、价格、SKU(tbk.item.info.get)。

  2. 图文详情(俗称"白底图+文案+视频")只在 PC 端商品页异步加载:

    https://detailskip.taobao.com/json/desc/get_desc.do?itemId=xxx

    该接口返回 经过 gzip 压缩的 HTML 片段,正是手机端"图文详情"原封不动数据源。

  3. 无货源搬家、比价、内容电商 必须拿到这段 HTML,否则只能人工复制。


二、请求流程 4 步走

步骤 URL 作用 是否可复用
① 拿商品 ID ------ 从列表页或搜索接口解析出 num_iid 一次
② 请求描述接口 detailskip.taobao.com/json/desc/get_desc.do 返回 gzip + urlencode 的 HTML 可并发
③ 解压 & 解码 Python zlib.decompress 得到原生 UTF-8 HTML ------
④ 清洗 BeautifulSoup/pyQuery 去外跳链接、补全图片 // 协议 ------

三、完整可运行代码(Python 3.x)

Python 复制代码
import re, json, gzip, time, random, requests
from urllib.parse import unquote
from bs4 import BeautifulSoup

HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
                  "(KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
    "Referer": "https://item.taobao.com/",
}

def get_desc_html(num_iid: str) -> str:
    """获取淘宝/天猫商品描述 HTML"""
    url = f"https://detailskip.taobao.com/json/desc/get_desc.do?itemId={num_iid}&t={int(time.time()*1000)}"
    rsp = requests.get(url, headers=HEADERS, timeout=10)
    rsp.raise_for_status()

    # 1. 接口返回的是 jsonp:  descUrl({"data":{"desc":"..."}})
    jsonp = rsp.text
    data = json.loads(re.search(r"(({.*}))", jsonp).group(1))
    raw = data["data"]["desc"]

    # 2. 经过两层 encode + gzip
    html = unquote(raw, encoding="gbk")          # 先 urldecode
    html = gzip.decompress(html.encode("latin1")).decode("gbk")  # 再 gzip

    # 3. 清洗:去掉淘宝外跳,替换成 https
    soup = BeautifulSoup(html, "lxml")
    for img in soup.find_all("img"):
        src = img.get("src") or ""
        if src.startswith("//"):
            img["src"] = "https:" + src
    return str(soup)

if __name__ == "__main__":
    html = get_desc_html("728649613560")   # 替换成任意宝贝 ID
    with open("desc.html", "w", encoding="utf-8") as f:
        f.write(html)
    print("图文详情已写入 desc.html,共 %.1f KB" % (len(html)/1024))

单请求 200400 ms,返回 10200 KB 富文本,含原图、表格、视频封面


四、字段速览(返回 HTML 内常见节点)

节点 示例 用途
<img src="https://img.alicdn.com/imgextra/..."> 白底图/场景图 一键搬家可直接上传到自己相册
<table class="tm-tableAttr"> 参数表 提取规格名+值,做同款对比
<video> 主图视频 拿到 postersrc 可离线保存

五、常见坑与调试技巧

现象 原因 解决
返回 {"data":""} 商品是"全球购"或"闲鱼"转链,无描述 直接跳过
中文乱码 先 gzip 后误用 UTF-8 解码 严格按照 gbk → latin1 → gzip → gbk 链路
403 滑块 IP 高频 ① 降速 1~3 s ② 共享池代理 ③ 复用 Cookie(JSESSIONID
图片裂图 // 协议 清洗时统一补 https:

六、生产级改造

  1. 异步批量

    aiohttp 协程池,500 个商品 2 分钟拉完,QPS≈8 安全区。

  2. 断点续传

    num_iid 做唯一键,Redis 记录"成功/失败",失败 3 次进死信队列。

  3. 合规兜底

    • 仅用于内部比价/选品,页面保留淘宝版权信息;
    • 控制频率:同一 IP 日请求 ≤5 万,避免触发"账号环境风险"。

七、一句话总结

taobao.item_get_desc 本质就是解析 detailskip.taobao.com/json/desc/get_desc.do 这一"隐形"接口,gzip+urlencode 双层解码是核心;掌握后,可在 10 行代码内把淘宝/天猫图文详情完整搬回本地,为后续无货源铺货、内容生成、比价系统提供最丰富的原生素材。

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

相关推荐
codists2 小时前
Pycharm错误:JetBrains AI URL resolution failure
python
青瓷程序设计2 小时前
鱼类识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
该用户已不存在2 小时前
Python正在死去,2026年Python还值得学吗?
后端·python
战南诚3 小时前
flask之“应用上下文,请求上下文”
python·flask
Predestination王瀞潞3 小时前
Windows环境下Pytorch的配置
人工智能·pytorch·python
二川bro3 小时前
特征工程完全手册:2025 Python实战技巧
开发语言·python
用户2345267009824 小时前
Python实现异步任务队列深度好文
后端·python
夫唯不争,故无尤也4 小时前
PyTorch 的维度变形一站式入门
人工智能·pytorch·python
熊猫钓鱼>_>5 小时前
从零开始构建RPG游戏战斗系统:实战心得与技术要点
开发语言·人工智能·经验分享·python·游戏·ai·qoder