淘宝商品描述接口 item_get_desc 代码逐行解析

admin5个月前淘宝api330
写给小二开发、无货源搬家、比价/导购站、ERP 上货——10 分钟拿到“图文详情”HTML 源码。

一、接口定位:官方没有,为什么还要它?

  1. 淘宝/天猫开放平台最高权限接口不返回图文详情,只给标题、价格、SKU 等静态字段。
  2. 真正“白底图 + 文案 + 视频”的详情页,来自 PC 端异步地址:
    https://detailskip.taobao.com/json/desc/get_desc.do?itemId={num_iid}
    返回 gzip 压缩后的 HTML 片段,正是手机端图文详情的原始数据。
  3. 想做无货源批量搬家、比价、内容电商,必须拿到这段 HTML,否则只能手工复制。

二、请求流程 4 步(先通览,再拆代码)

表格
复制
步骤关键动作是否可并发
① 取商品 ID从搜索/列表页解析 num_iid
② 请求 desc 接口detailskip.taobao.com/json/desc/get_desc.do
③ 解压+解码zlib.decompress → HTML
④ 清洗入库去外跳、补全协议、下载图片

三、完整源码(Python 3.x)

Python
复制
import re, json, gzip, time, requestsfrom urllib.parse import unquotefrom 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
    :param num_iid: 商品数字 ID
    :return: 清洗后的 HTML 字符串
    """
    # ① 组装 URL(带时间戳防缓存)
    url = (f"https://detailskip.taobao.com/json/desc/get_desc.do?"
           f"itemId={num_iid}&t={int(time.time()*1000)}")
    rsp = requests.get(url, headers=HEADERS, timeout=10)
    rsp.raise_for_status()

    # ② 返回是 JSONP: descUrl({"data":{"desc":"..."}})
    jsonp = rsp.text
    data = json.loads(re.search(r"\(({.*})\)", jsonp).group(1))
    raw = data["data"]["desc"]          # 仍是 urlencode+gzip 双重压缩

    # ③ 解码:先 urldecode → 再 gzip
    html = unquote(raw, encoding="gbk")
    html = gzip.decompress(html.encode("latin1")).decode("gbk")

    # ④ 清洗:去掉外跳、补全图片协议
    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)# —— ⑤ CLI 快速体验 —— #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))

四、逐行代码解析

表格
复制
行号区间关键知识为什么这么做
① url 拼接时间戳 t防 CDN 缓存,避免拿到旧描述
② jsonp 正则descUrl({...})接口返回的是 JSONP,非标准 JSON,需要正则抠括号
③ 双重压缩urlencode + gzip淘宝为了节省流量,先 gzip 再 urlencode;顺序反了会乱码
④ BeautifulSoup清洗 HTML去掉外跳、补全 //img.alicdn.com 协议,防止后期 404
⑤ 写文件本地调试直接双击 desc.html 即可看到与手淘一致的图文详情

五、返回长什么样?

接口原始 JSONP 示例(截断):
JavaScript
复制
descUrl({
  "data": {
    "desc": "%1F%8B%08%00...(略)"
  }})
解压后得到标准 HTML,结构类似:
HTML
预览
复制
<div class="content">
  <p><img src="https://img.alicdn.com/imgextra/i3/220668653254/O1CN01abc_!!220668653254.jpg" /></p>
  <p>【商品卖点】……</p>
  <table> …… </table></div>
可直接入库或渲染到小程序/WebView。

六、常见坑点 & 解决方案

表格
复制
坑点现象解决
返回“desc”为空商品无详情或 ID 错误先浏览器打开 detailskip 地址确认
gzip 解码报错UnicodeDecodeError确保先 unquotelatin1gzipgbk 顺序
图片 404相对路径 //img统一替换成 https://
触发滑块偶尔 403加 timeout + 随机 UA + 重试 3 次即可
频率限制同 IP 连续 200 次后慢速单线程 200 ms 延迟基本安全

七、业务落地 3 案例

  1. 无货源 ERP
    批量调用 get_desc_html → 清洗 → 把图片转存 OSS → 生成新的 desc.html → 上传到拼多多/抖店,完成“一键搬家”。
  2. 比价/导购站
    desc 里的图片 URL 单独抽出 → 做图片指纹对比 → 发现竞品更新立即推送钉钉。
  3. 小程序富文本
    清洗后的 HTML 直接喂给 rich-text 组件;视频封面单独抽出来放在首图,提升停留时长。

八、小结

item_get_desc 本质就是淘宝前端自己的详情加载接口,无签名、无 token、无 QPS 限制,但返回的是“压缩+编码”的 HTML。
只要按顺序解压、解码、清洗,就能 100 % 还原手淘图文详情。跑通上面 30 行代码,再叠加你自己的图片转存、字段正则、敏感词过滤,就能在搬家、比价、内容电商场景中快速上线。祝你“搬”得开心,单量长虹!

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

相关文章

淘宝商品评论接口实战解析:从抓包到数据抓取全链路技术指南

一、前言淘宝商品评论数据是电商数据分析的"金矿"——用户真实反馈、产品痛点、竞品对比都隐藏其中。但淘宝的反爬机制堪称国内电商平台最严密之一,sign签名动态加密、滑块验证、行为风控...

获取淘宝SKU商品详情数据api的实战指南

在电商数据分析、竞品监控、个性化推荐等场景中,获取淘宝商品的SKU(Stock Keeping Unit,库存进出计量的基本单元)详情数据至关重要。本文将详细介绍如何通过合法途径获取淘宝SKU商品详情...

淘宝指定店铺商品销量与价格数据监控实战指南

在电商数据分析、竞品监控、选品决策等场景中,实时追踪指定淘宝/天猫店铺的商品销量和价格变动是核心需求。本文将深入讲解合规且稳定的监控方案,涵盖官方 API 接入、第三方数据服务调用、以及完整的 Jav...

反向海淘:为全球用户轻松代购中国商品,多语言与多支付选项助力跨境购物

在当今全球化的时代,中国商品凭借其卓越的品质、丰富的种类和极具竞争力的价格,受到了全球消费者的广泛喜爱。然而,语言障碍、支付方式的差异以及复杂的物流流程,往往让海外消费者在购买中国商品时望而却步。但如...

利用 Java 爬虫获取淘宝商品详情高级版 API 接口

在电商领域,淘宝作为国内领先的电商平台,提供了丰富的商品详情数据。对于开发者和数据分析师来说,获取这些数据对于市场分析、价格监控、用户体验优化等场景具有重要意义。本文将详细介绍如何使用 Java 编写...

淘宝商品详情高级版(item_get_pro)API 接口获取与应用指南

在电商领域,精准获取商品详情数据对于市场分析、价格策略制定、库存管理以及用户体验优化至关重要。淘宝作为国内领先的电商平台,其提供的 item_get_pro 接口能够帮助开发者高效获取商品的高级详情数...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。