一、引言
在電商業務蓬勃發展的當下,拼多多作為國內知名的電商平臺,擁有海量的商品資源。對于開發者和企業而言,獲取拼多多商品的詳細信息具有重要意義。比如,商家可以通過商品詳情信息進行競品分析,電商數據分析公司可以利用這些數據挖掘市場趨勢,電商工具開發者可以開發商品展示、價格監控等應用。拼多多提供的商品詳情 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
替換為你自己在拼多多開放平臺獲取的實際值。運行代碼后,就可以獲取到指定商品的詳細信息。