一、引言
在电商业务蓬勃发展的当下,拼多多作为国内知名的电商平台,拥有海量的商品资源。对于开发者和企业而言,获取拼多多商品的详细信息具有重要意义。比如,商家可以通过商品详情信息进行竞品分析,电商数据分析公司可以利用这些数据挖掘市场趋势,电商工具开发者可以开发商品展示、价格监控等应用。拼多多提供的商品详情 API 接口,使得开发者能够以编程的方式获取商品的详细信息,极大地提高了数据获取的效率和灵活性。
二、接口概述
1. 请求方式
一般采用 POST 请求方式,通过在请求体中携带必要的参数来获取商品详情。
2. 请求参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
type | 字符串 | 是 | 接口类型,对于商品详情接口,一般为 pdd.ddk.goods.detail 。 |
client_id | 字符串 | 是 | 开发者在拼多多开放平台申请应用后获得的客户端 ID 。 |
access_token | 字符串 | 是 | 用于身份验证的访问令牌,需要通过授权流程获取。 |
goods_id_list | 数组 | 是 | 商品 ID 列表,可传入一个或多个商品 ID ,用于获取对应商品的详情信息。 |
sign | 字符串 | 是 | 签名,用于验证请求的合法性,需要根据拼多多开放平台提供的签名规则生成。 |
三、Python 请求示例
以下是一个使用 Python 的 requests
库来请求拼多多商品详情 API 接口的示例代码:
import requests
import hashlib
import json
假设 API 接口地址,复制链接获取测试。
API url=c0b.cc/R4rbK2 wechat id:Taobaoapi2014"
# 商品 ID 列表
goods_id_list = [123456, 789012]
# 接口类型
api_type = 'pdd.ddk.goods.detail'
# 生成签名的函数
def generate_sign(params, client_secret):
sorted_params = sorted(params.items(), key=lambda item: item[0])
sign_str = client_secret
for key, value in sorted_params:
if isinstance(value, (list, dict)):
value = json.dumps(value, separators=(',', ':'))
sign_str += f"{key}{value}"
sign_str += client_secret
sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
return sign
# 假设的 client_secret ,需要替换为实际值
client_secret = 'your_client_secret'
# 构造请求参数
params = {
'type': api_type,
'client_id': client_id,
'access_token': access_token,
'goods_id_list': goods_id_list
}
# 生成签名
params['sign'] = generate_sign(params, client_secret)
try:
# 发送 POST 请求
response = requests.post(api_url, data=params)
# 检查响应状态码
if response.status_code == 200:
result = response.json()
if 'error_response' in result:
# 请求失败,打印错误信息
error_code = result['error_response']['error_code']
error_msg = result['error_response']['error_msg']
print(f"请求失败,错误码: {error_code},错误信息: {error_msg}")
else:
# 请求成功,打印商品详情
goods_details = result['goods_detail_response']['goods_details']
for detail in goods_details:
print(f"商品 ID: {detail['goods_id']}")
print(f"商品名称: {detail['goods_name']}")
print(f"最低拼团价格: {detail['min_group_price'] / 100} 元")
print(f"市场价格: {detail['market_price'] / 100} 元")
print(f"销量描述: {detail['sales_tip']}")
else:
print(f"请求失败,状态码: {response.status_code}")
except requests.RequestException as e:
print(f"请求发生异常: {e}")
在上述代码中,你需要将 your_client_id
、your_access_token
和 your_client_secret
替换为你自己在拼多多开放平台获取的实际值。运行代码后,就可以获取到指定商品的详细信息。