如何通过API获取拼多多商品详情数据?

53450 0 2025-10-28

一、核心流程

认证准备

注册开放平台账号,获取client_id和client_secret

调用鉴权接口换取access_token,有效期通常为$24times60$分钟

构造请求

GET /api/product/detail?  
  goods_id=12345678&  
  access_token=your_token  
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

必传参数

goods_id:商品ID(如$goods_id=12345678$)

access_token:认证令牌

响应示例

{
  "code": 0,
  "data": {
    "goods_name": "商品标题",
    "price": 99.00,  // 价格字段 $price$
    "sales": 10000,  // 销量 $sales$
    "sku_list": [
      {
        "spec": "规格",
        "stock": 500  // 库存 $stock$
      }
    ]
  }
}

二、关键技术点

签名机制

需按字典序排序参数并生成签名:

$$sign = MD5(text{param1=val1¶m2=val2}ldots & text{client_secret})$$

错误处理

{"code": 1001, "msg": "参数错误"}  // 需捕获 $code neq 0$ 的异常
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

限流策略

单账号默认$100$次/分钟

建议使用指数退避重试:

$$wait_time = base times 2^{retry_count}$$

三、Python示例代码

import requests

def fetch_pdd_goods(goods_id, token):
    url = "https://api.pinduoduo.com/goods/detail"
    params = {
        "goods_id": goods_id,  # 商品ID需替换
        "access_token": token  # 动态令牌
    }
    try:
        response = requests.get(url, params=params, timeout=5)
        if response.json()["code"] == 0:
            return response.json()["data"]
        else:
            print(f"错误码: {response.json()['code']}")
    except Exception as e:
        print(f"请求异常: {str(e)}")

# 调用示例
goods_data = fetch_pdd_goods("12345678", "your_token_here")

四、常见问题

商品ID获取

通过商品链接解析:https://yangkeduo.com/goods.html?goods_id=12345678

商品ID为链接中的$goods_id$值

数据更新延迟

价格/库存数据存在$3sim5$分钟缓存

高实时场景建议配合消息推送API

提示:请严格遵守平台API调用频率限制,批量获取建议使用goods_list接口配合分页参数$page_size$和$page_num$。

如有任何疑问,欢迎大家留言探讨。

​审核编辑 黄宇

  • 随机文章
  • 热门文章
  • 热评文章