jd 商品评论 Api 接口 全解析指南

以下是通过京东开放平台合法获取商品评论数据的完整解决方案,涵盖接口调用、数据解析、异常处理及合规性管理等核心环节:
一、官方 API 合规接入
开发者认证与权限申请
步骤:
访问 京东平台,注册账号并创建应用,获取 AppKey 和 AppSecret。
申请商品评论相关接口权限:
基础权限:jd.item_review(商品评论列表)需通过 “数据服务” 类目审核。
高级权限:jd.item_review_picture(评论图片)、jd.item_review_video
配置应用回调 URL(非必填,但可用于接收异步通知)。
代码示例(Python):
coding:utf-8
"""Compatible for python2.x and python3.xrequirement: pip install requests"""from future import print_functionimport requests
请求示例 url 默认请求参数已经做 URL 编码
封装好 API 供应商 demo url=o0b.cn/ibrad, wechat id: TaoxiJd 复制链接获取测试
url = "jd/item_review/?key=<您自己的 apiKey>&secret=<您自己的 apiSecret>&num_iid=71619129750&page=1&sort=&is_sku=false"headers = {"Accept-Encoding": "gzip","Connection": "close"}if name == "main":r = requests.get(url, headers=headers)json_obj = r.json()print(json_obj)
2. 核心接口调用与参数解析
接口选择:
接口名称 功能描述 核心参数 返回字段示例
jd.item_review 获取商品评论列表(含内容、时间、用户昵称) sku_id(商品 ID) rate_content、rate_date、display_user_nick
参数设置:
params = {'method': 'jd.item_review','sku_id': '123456789', # 商品 ID'page': 1, # 当前页码'page_size': 10, # 每页数量'sort_type': '1', # 排序方式(1=按时间倒序,2=按点赞数降序)'timestamp': '2025-05-05 12:00:00'}二、数据获取与异常处理
接口调用与响应处理
请求发送:
response = client.execute(params)if response.get('code') != '0':raise ValueError(f"API调用失败,错误码:{response['code']},错误信息:{response['message']}")数据解析:
reviews = response['result']['comments']for review in reviews:print(f"评论内容:{review['rate_content']}")print(f"评论时间:{review['rate_date']}")print(f"买家昵称:{review['display_user_nick']}")重试逻辑:
max_retries = 3for _ in range(max_retries):try:response = client.execute(params)breakexcept Exception as e:print(f"请求失败,重试中... 错误信息:{str(e)}")else:raise RuntimeError("多次重试后仍失败")
三、数据质量保障
分页与全量数据获取
分页逻辑:
total_pages = response['result']['total_pages']for page in range(1, total_pages + 1):params['page'] = pageresponse = client.execute(params)# 处理当前页数据增量更新:
last_fetch_time = get_last_fetch_time() # 从数据库或缓存获取上次抓取时间 params['start_time'] = last_fetch_timeresponse = client.execute(params)
处理新增评论
update_last_fetch_time() # 更新上次抓取时间四、合规性与风险控制
法律合规性
禁止行为:
绕过京东反爬机制(如 IP 封禁、验证码)。
批量抓取用户隐私数据(如完整昵称、联系方式)。
将数据用于竞品分析、价格监控等商业用途(需获得京东授权)。
合规建议:
使用官方 API 时,遵守《京东开放平台服务协议》,每日调用量不超过 10 万次。
数据存储需符合《个人信息保护法》,对敏感字段(如用户 ID)进行脱敏处理。
反爬规避策略
五、性能优化与缓存策略
缓存机制
本地缓存:
import rediscache = redis.Redis(host='localhost', port=6379, db=0)
cache_key = f"jd_reviews_{sku_id}_{page}"cached_data = cache.get(cache_key)if cached_data:reviews = json.loads(cached_data)else:reviews = client.execute(params)cache.setex(cache_key, 3600, json.dumps(reviews)) # 缓存 1 小时 CDN 加速:将评论图片、视频等静态资源通过 CDN 分发,减少服务器压力。
异步处理
多线程 / 异步请求:
import concurrent.futures
def fetch_reviews(page):params['page'] = pagereturn client.execute(params)
with concurrent.futures.ThreadPoolExecutor() as executor:futures = [executor.submit(fetch_reviews, page) for page in range(1, total_pages + 1)]for future in concurrent.futures.as_completed(futures):reviews = future.result()# 处理数据
六、替代方案:第三方数据服务商
若官方 API 无法满足需求,可考虑以下合规途径:
数据聚合平台:
蝉妈妈:提供商品评论情感分析、关键词云等增值服务,需签署商业合作协议。
情报通:支持评论数据批量导出,按调用量计费。
代运营服务商:
火蝠电商:通过京东官方授权,提供店铺评论数据抓取服务(需企业资质审核)。
易亚电商:支持评论数据 API 对接,按接口调用次数收费。
总结
方案类型 技术难度 合规性 数据完整性 成本
官方 API 低 高 完整 免费 / 按量付费
抓包 + 逆向 高 低 完整 设备 / 人力成本
第三方服务商 低 中 部分 年费 / 调用费
对于大规模数据需求,可结合第三方服务商实现成本与效率的平衡。
评论