一、引言
在電商業(yè)務(wù)蓬勃發(fā)展的當(dāng)下,拼多多作為國(guó)內(nèi)知名的電商平臺(tái),擁有海量的商品資源。對(duì)于開發(fā)者和企業(yè)而言,獲取拼多多商品的詳細(xì)信息具有重要意義。比如,商家可以通過(guò)商品詳情信息進(jìn)行競(jìng)品分析,電商數(shù)據(jù)分析公司可以利用這些數(shù)據(jù)挖掘市場(chǎng)趨勢(shì),電商工具開發(fā)者可以開發(fā)商品展示、價(jià)格監(jiān)控等應(yīng)用。拼多多提供的商品詳情 API 接口,使得開發(fā)者能夠以編程的方式獲取商品的詳細(xì)信息,極大地提高了數(shù)據(jù)獲取的效率和靈活性。
二、接口概述
1. 請(qǐng)求方式
一般采用 POST 請(qǐng)求方式,通過(guò)在請(qǐng)求體中攜帶必要的參數(shù)來(lái)獲取商品詳情。
2. 請(qǐng)求參數(shù)
參數(shù)名 | 類型 | 是否必填 | 描述 |
---|---|---|---|
type | 字符串 | 是 | 接口類型,對(duì)于商品詳情接口,一般為 pdd.ddk.goods.detail 。 |
client_id | 字符串 | 是 | 開發(fā)者在拼多多開放平臺(tái)申請(qǐng)應(yīng)用后獲得的客戶端 ID 。 |
access_token | 字符串 | 是 | 用于身份驗(yàn)證的訪問(wèn)令牌,需要通過(guò)授權(quán)流程獲取。 |
goods_id_list | 數(shù)組 | 是 | 商品 ID 列表,可傳入一個(gè)或多個(gè)商品 ID ,用于獲取對(duì)應(yīng)商品的詳情信息。 |
sign | 字符串 | 是 | 簽名,用于驗(yàn)證請(qǐng)求的合法性,需要根據(jù)拼多多開放平臺(tái)提供的簽名規(guī)則生成。 |
三、Python 請(qǐng)求示例
以下是一個(gè)使用 Python 的 requests
庫(kù)來(lái)請(qǐng)求拼多多商品詳情 API 接口的示例代碼:
import requests
import hashlib
import json
假設(shè) API 接口地址,復(fù)制鏈接獲取測(cè)試。
API url=c0b.cc/R4rbK2 wechat id:Taobaoapi2014"
# 商品 ID 列表
goods_id_list = [123456, 789012]
# 接口類型
api_type = 'pdd.ddk.goods.detail'
# 生成簽名的函數(shù)
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
# 假設(shè)的 client_secret ,需要替換為實(shí)際值
client_secret = 'your_client_secret'
# 構(gòu)造請(qǐng)求參數(shù)
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:
# 發(fā)送 POST 請(qǐng)求
response = requests.post(api_url, data=params)
# 檢查響應(yīng)狀態(tài)碼
if response.status_code == 200:
result = response.json()
if 'error_response' in result:
# 請(qǐng)求失敗,打印錯(cuò)誤信息
error_code = result['error_response']['error_code']
error_msg = result['error_response']['error_msg']
print(f"請(qǐng)求失敗,錯(cuò)誤碼: {error_code},錯(cuò)誤信息: {error_msg}")
else:
# 請(qǐng)求成功,打印商品詳情
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"最低拼團(tuán)價(jià)格: {detail['min_group_price'] / 100} 元")
print(f"市場(chǎng)價(jià)格: {detail['market_price'] / 100} 元")
print(f"銷量描述: {detail['sales_tip']}")
else:
print(f"請(qǐng)求失敗,狀態(tài)碼: {response.status_code}")
except requests.RequestException as e:
print(f"請(qǐng)求發(fā)生異常: {e}")
在上述代碼中,你需要將 your_client_id
、your_access_token
和 your_client_secret
替換為你自己在拼多多開放平臺(tái)獲取的實(shí)際值。運(yùn)行代碼后,就可以獲取到指定商品的詳細(xì)信息。