一、引言
在電商領(lǐng)域,商品評(píng)論是消費(fèi)者了解商品質(zhì)量、性能和服務(wù)水平的重要依據(jù),同時(shí)對(duì)于商家來(lái)說(shuō),也能從中獲取用戶反饋以改進(jìn)商品和服務(wù)。京東作為國(guó)內(nèi)知名的電商平臺(tái),提供了商品評(píng)論 API 接口,允許開發(fā)者獲取商品的評(píng)論信息,這對(duì)于數(shù)據(jù)挖掘、市場(chǎng)調(diào)研、用戶體驗(yàn)分析等方面具有重要價(jià)值。通過(guò)調(diào)用該接口,開發(fā)者可以獲取商品的評(píng)論內(nèi)容、評(píng)論時(shí)間、評(píng)論者評(píng)分等詳細(xì)信息,為后續(xù)的數(shù)據(jù)分析和應(yīng)用提供支持。小編:Taobaoapi2014, 前往體驗(yàn)API:c0b.cc/R4rbK2 。
二、接口概述
1. 接口用途
京東商品評(píng)論 API 主要用于獲取指定商品的評(píng)論信息,包括評(píng)論列表、評(píng)論總數(shù)、好評(píng)率、差評(píng)率等。
2. 接入條件
- 注冊(cè)開發(fā)者賬號(hào):你需要在京東開放平臺(tái)注冊(cè)成為開發(fā)者,并創(chuàng)建一個(gè)應(yīng)用,從而獲取
app_key
和app_secret
,這兩個(gè)信息是調(diào)用 API 的身份標(biāo)識(shí)。 - 申請(qǐng)權(quán)限:在開放平臺(tái)上申請(qǐng)調(diào)用商品評(píng)論 API 的權(quán)限,只有獲得授權(quán)后才能正常調(diào)用接口。
3. 接口參數(shù)
- 公共參數(shù):像
app_key
、timestamp
、format
、v
、sign
這類參數(shù)是每個(gè)請(qǐng)求都必須攜帶的,其中sign
是根據(jù)特定規(guī)則生成的簽名,用于保證請(qǐng)求的安全性。 - 業(yè)務(wù)參數(shù):通常會(huì)包含商品 ID、頁(yè)碼、每頁(yè)評(píng)論數(shù)量等,這些參數(shù)決定了你要獲取哪個(gè)商品的評(píng)論以及獲取評(píng)論的范圍。
4. 接口返回值
接口返回的數(shù)據(jù)格式一般為 JSON,包含商品評(píng)論的詳細(xì)信息,如評(píng)論內(nèi)容、評(píng)論時(shí)間、評(píng)論者昵稱、評(píng)論者評(píng)分等,同時(shí)還會(huì)有一些統(tǒng)計(jì)信息,如好評(píng)率、差評(píng)率、評(píng)論總數(shù)等。
三、Python 請(qǐng)求示例
下面是一個(gè)使用 Python 的requests
庫(kù)調(diào)用京東商品評(píng)論 API 的示例代碼:
import requests
import time
import hashlib
假設(shè) API 接口地址,復(fù)制鏈接獲取測(cè)試。
API url=c0b.cc/R4rbK2 wechat id:Taobaoapi2014"
生成簽名
def generate_sign(params, app_secret):
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = app_secret
for key, value in sorted_params:
sign_str += f'{key}{value}'
sign_str += app_secret
sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
return sign
商品ID,可替換為你要查詢的商品ID
sku_id = '123456789'
頁(yè)碼,從1開始
page = 1
每頁(yè)評(píng)論數(shù)量
page_size = 10
構(gòu)造請(qǐng)求參數(shù)
params = {
'method': 'jingdong.ware.product.comment.get',
'app_key': app_key,
'timestamp': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
'format': 'json',
'v': '2.0',
'access_token': access_token,
'360buy_param_json': f'{{"skuId": "{sku_id}", "page": {page}, "pageSize": {page_size}}}'
}
生成簽名并添加到參數(shù)中
params['sign'] = generate_sign(params, app_secret)
發(fā)送請(qǐng)求
try:
response = requests.post(api_url, data=params)
response.raise_for_status()
result = response.json()
print(result)
except requests.exceptions.RequestException as e:
print(f"請(qǐng)求出錯(cuò): {e}")
except ValueError as e:
print(f"解析JSON數(shù)據(jù)出錯(cuò): {e}")
代碼說(shuō)明
- 配置信息:要把
app_key
、app_secret
和access_token
替換成你自己在京東開放平臺(tái)獲取的信息。 - 生成簽名:京東 API 要求對(duì)請(qǐng)求參數(shù)進(jìn)行簽名,以確保請(qǐng)求的安全性。
generate_sign
函數(shù)用于生成簽名。 - 構(gòu)造請(qǐng)求參數(shù):按照 API 文檔的要求,構(gòu)造請(qǐng)求所需的參數(shù),包括方法名、商品 ID、頁(yè)碼、每頁(yè)評(píng)論數(shù)量等。
- 發(fā)送請(qǐng)求:使用
requests.post
方法發(fā)送請(qǐng)求,并處理可能出現(xiàn)的異常。