一、引言
在电商领域,商品评论是消费者了解商品质量、性能和服务水平的重要依据,同时对于商家来说,也能从中获取用户反馈以改进商品和服务。京东作为国内知名的电商平台,提供了商品评论 API 接口,允许开发者获取商品的评论信息,这对于数据挖掘、市场调研、用户体验分析等方面具有重要价值。通过调用该接口,开发者可以获取商品的评论内容、评论时间、评论者评分等详细信息,为后续的数据分析和应用提供支持。小编:Taobaoapi2014, 前往体验API:c0b.cc/R4rbK2 。
二、接口概述
1. 接口用途
京东商品评论 API 主要用于获取指定商品的评论信息,包括评论列表、评论总数、好评率、差评率等。
2. 接入条件
- 注册开发者账号:你需要在京东开放平台注册成为开发者,并创建一个应用,从而获取
app_key
和app_secret
,这两个信息是调用 API 的身份标识。 - 申请权限:在开放平台上申请调用商品评论 API 的权限,只有获得授权后才能正常调用接口。
3. 接口参数
- 公共参数:像
app_key
、timestamp
、format
、v
、sign
这类参数是每个请求都必须携带的,其中sign
是根据特定规则生成的签名,用于保证请求的安全性。 - 业务参数:通常会包含商品 ID、页码、每页评论数量等,这些参数决定了你要获取哪个商品的评论以及获取评论的范围。
4. 接口返回值
接口返回的数据格式一般为 JSON,包含商品评论的详细信息,如评论内容、评论时间、评论者昵称、评论者评分等,同时还会有一些统计信息,如好评率、差评率、评论总数等。
三、Python 请求示例
下面是一个使用 Python 的requests
库调用京东商品评论 API 的示例代码:
import requests
import time
import hashlib
假设 API 接口地址,复制链接获取测试。
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'
页码,从1开始
page = 1
每页评论数量
page_size = 10
构造请求参数
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}}}'
}
生成签名并添加到参数中
params['sign'] = generate_sign(params, app_secret)
发送请求
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"请求出错: {e}")
except ValueError as e:
print(f"解析JSON数据出错: {e}")
代码说明
- 配置信息:要把
app_key
、app_secret
和access_token
替换成你自己在京东开放平台获取的信息。 - 生成签名:京东 API 要求对请求参数进行签名,以确保请求的安全性。
generate_sign
函数用于生成签名。 - 构造请求参数:按照 API 文档的要求,构造请求所需的参数,包括方法名、商品 ID、页码、每页评论数量等。
- 发送请求:使用
requests.post
方法发送请求,并处理可能出现的异常。