实战解析:淘宝/天猫商品描述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)

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))

单请求 200~400 ms,返回 10~200 KB 富文本,含原图、表格、视频封面


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

表格

复制

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

五、常见坑与调试技巧

现象原因解决
返回 {"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 行代码内把淘宝/天猫图文详情完整搬回本地,为后续无货源铺货、内容生成、比价系统提供最丰富的原生素材。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值