京东商品评论接口技术实现:从接口分析到数据挖掘

简介: 本方案基于京东官方API,合规实现商品评论全链路分析:MD5+OAuth2双鉴权调用,180天数据采集;经清洗、SnowNLP情感分类(好评/中评/差评)与jieba-TFIDF关键词挖掘,生成情感分布饼图及差评词云,支持竞品调研与口碑监控。(239字)

一、接口原理与合规要点

1. 接口架构原理

京东评论接口分为 JOS 商家版、联盟开放版,统一网关路由,采用MD5 签名 + OAuth2.0 双鉴权防篡改。联盟接口面向第三方,用来竞品调研;商家接口仅限自有店铺数据,准入严苛。接口数据默认仅留存近 180 天评论,存在分页上限与 QPS 限流。

2. 合规红线

  1. 仅使用平台官方开放 API 获取数据,禁止抓包逆向前端匿名接口、代理爬虫批量爬取,规避知识产权与风控处罚;

  2. 调用频次严格遵循平台 QPS 限流规则,不超限刷接口;

  3. 采集评论数据仅限企业竞品调研、市场分析自用,禁止倒卖用户评论隐私数据。

二、接口架构与出参字段设计

  1. 接口返回结构化 JSON,核心业务字段决定后续数据挖掘维度:评分星级、评论文本、评论时间、商品规格、晒图标识、追评内容。

  2. 接口约束:默认仅返回近 180 天评论,分页存在页码上限,超限无数据返回;高频调用触发平台限流错误码。

    三、接口封装与全量采集实现

环境依赖

import requests
import json
import hashlib
import time
import pandas as pd

APP_KEY = "xxxx"
APP_SECRET = "xxxx"
ACCESS_TOKEN = "xxxx"
API_URL = "xxxxxxx"


def md5_sign(params):
    plain = APP_SECRET
    for k in sorted(params):
        plain += k + str(params[k])
    plain += APP_SECRET
    return hashlib.md5(plain.encode()).hexdigest().upper()


def fetch_one_page(sku_id, page):
    biz = json.dumps({
   
        "skuId": sku_id,
        "pageIndex": page,
        "pageSize": 20,
        "score": 0,
        "isImage": 0,
        "needAfterReview": 1
    }, separators=(",", ":"))

    params = {
   
        "app_key": APP_KEY,
        "method": "jd.union.open.goods.comment.query",
        "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
        "format": "json",
        "v": "1.0",
        "sign_method": "md5",
        "access_token": ACCESS_TOKEN,
        "360buy_param_json": biz
    }

    params["sign"] = md5_sign(params)

    r = requests.get(API_URL, params=params, timeout=15)
    return r.json()


def crawl_comments(sku_id):
    data = []
    page = 1

    while True:
        res = fetch_one_page(sku_id, page)
        comments = (
            res.get("jd_union_open_goods_comment_query_res", {
   })
               .get("result", {
   })
               .get("comments", [])
        )

        if not comments:
            break

        for c in comments:
            after = c.get("afterSaleReview") or {
   }
            row = {
   
                "comment_id": c.get("commentId"),
                "star": c.get("rating"),
                "content": c.get("content"),
                "after_comment": after.get("content", ""),
                "spec": c.get("skuAttr", ""),
                "create_time": c.get("creationTime"),
                "has_img": 1 if c.get("pictures") else 0
            }
            data.append(row)

        print(f"page {page}, total {len(data)}")
        page += 1
        time.sleep(0.4)

    df = pd.DataFrame(data)
    df.to_csv("jd_comment_raw.csv", index=False, encoding="utf-8-sig")
    return df


if __name__ == "__main__":
    crawl_comments("100025698741")

核心逻辑:MD5 签名算法、请求失败自动重试、循环分页全量采集、原始数据落地 CSV

四、数据清洗(挖掘前置核心步骤)

去除特殊符号、无效空格、过短无意义评论,剔除脏数据保障 NLP 准确率:

def clean_comment(text):
    if not isinstance(text, str):
        return ""
    text = re.sub(r"<[^>]+>|\s+", " ", text)
    text = text.strip()
    return "" if len(text) < 2 else text


df_raw["clean_content"] = df_raw["content"].apply(clean_comment)
df_clean = df_raw[df_raw["clean_content"].astype(bool)].copy()

五、NLP 数据挖掘两大核心

1 情感自动分类

依托 SnowNLP 实现评论自动打标:>0.6 好评、0.3~0.6 中评、<0.3 差评,量化口碑表现。

import pandas as pd
from snownlp import SnowNLP

def sentiment_analysis(text):
    if not isinstance(text, str) or not text.strip():
        return pd.Series([None, "未知"])

    try:
        prob = SnowNLP(text).sentiments
        score = round(prob, 3)

        if score > 0.6:
            label = "好评"
        elif score >= 0.3:
            label = "中评"
        else:
            label = "差评"

        return pd.Series([score, label])
    except Exception:
        return pd.Series([None, "未知"])


df_clean[["sent_score", "sent_label"]] = (
    df_clean["clean_content"].apply(sentiment_analysis)
)

2 关键词提取痛点

jieba-TFIDF 提取名词、动词关键词,汇总差评高频词定位产品缺陷:

import jieba.analyse

def extract_keywords(text, top_n=3):
    if not isinstance(text, str) or not text.strip():
        return ""

    words = jieba.analyse.extract_tags(
        text,
        topK=top_n,
        allowPOS=("n", "v")
    )
    return ",".join(words)


df_clean["keywords"] = (
    df_clean["clean_content"].apply(extract_keywords)
)

# 差评整体关键词
bad_text = " ".join(
    df_clean.loc[df_clean["sent_label"] == "差评", "clean_content"]
)

top_bad_keywords = jieba.analyse.extract_tags(
    bad_text,
    topK=30
)

print("产品差评关键词:")
print(top_bad_keywords)

六、可视化落地

  1. 情感分布饼图:直观查看好评 / 中差评占比;

  2. 差评词云:可视化用户集中吐槽点

import matplotlib.pyplot as plt
from wordcloud import WordCloud

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

sent_cnt = df_clean["sent_label"].dropna().value_counts()
if not sent_cnt.empty:
    plt.figure(figsize=(6, 6))
    plt.pie(sent_cnt.values, labels=sent_cnt.index, autopct="%1.1f%%", startangle=120)
    plt.title("评论情感分布")
    plt.axis("equal")
    plt.tight_layout()
    plt.savefig("sent_pie.png", dpi=300)
    plt.close()

if bad_text and isinstance(bad_text, str):
    wc = WordCloud(
        font_path="C:/Windows/Fonts/simhei.ttf",
        width=900,
        height=500,
        background_color="white"
    )
    wc.generate(bad_text)
    wc.to_file("bad_wordcloud.png")

总 结

整套方案基于官方 API 全链路合规,从接口鉴权原理、数据采集、清洗、NLP 挖掘到可视化形成标准化链路,可快速搭建商品口碑自动化分析系统,可拓展大模型评论摘要、负面消息自动预警功能。

目录
相关文章
|
2月前
|
Java Go 开发者
开发效率三剑客:代码格式化、接口调试与文档生成
本文系统讲解现代软件开发三大关键环节:代码格式化(统一风格、提升可读性)、接口调试(精准验证、Mock协同)与文档生成(代码即文档、实时同步)。涵盖Python/Java/Go等主流语言工具推荐及CI/CD集成实践,助力零基础开发者高效入门、规避低级错误。(239字)
249 0
|
1月前
|
数据采集 存储 JSON
京东商品详情 API 实战总结(技术复盘)
本文为京东商品详情API实战复盘,聚焦后端开发落地:基于合规封装接口(如Taobaoapi2014),通过jd.item_get实现自营/第三方商品全维度采集,涵盖基础信息、价格库存、图文素材及口碑数据;攻克签名校验、限流、区域差异等难点,优化调度与容错,保障企业级稳定调用。(239字)
|
5月前
|
数据采集 JSON 监控
京东宝贝详情数据采集指南
京东商品详情API是京东开放平台核心接口,合规、实时(延迟≤30秒)、全量获取商品结构化数据,涵盖价格、库存、图文、参数、评价等维度,支持高并发与企业级配额,广泛应用于比价监控、选品分析、ERP集成及营销推荐等场景。
|
6月前
|
机器学习/深度学习 搜索推荐 算法
推荐系统为啥都长一个样?聊聊「离线训练 + 在线召回 + 排序」这套大数据架构
推荐系统为啥都长一个样?聊聊「离线训练 + 在线召回 + 排序」这套大数据架构
403 0
|
8月前
|
运维 监控 供应链
Alibaba交易平台TMF2.0介绍
2017双11交易峰值达32.5万笔/秒,面对高并发与复杂业务需求,阿里推出TMF2.0框架,通过业务与平台分离、全链路可视化、配置化发布等创新,实现需求开发周期缩短至12天,支撑多业务快速试错与复用,构建可配置、可监控、可运维的电商技术新体系。
1112 5
Alibaba交易平台TMF2.0介绍
|
3月前
|
人工智能 自然语言处理 算法
大模型应用:从手动调参到智能寻优:PSO 驱动的大模型参数自动化优化.94
本文介绍PSO(粒子群优化)与大模型结合的自动化调参方法:将高维、非凸、难量化的调参问题转化为智能寻优工程,利用PSO全局搜索能力+大模型效果评估能力,实现推理、检索、生成等参数的高效、自动、最优配置。
405 4
|
1月前
|
数据采集 JSON 监控
小红书评论 API 接口详解与实战开发
小红书作为生活方式、美妆穿搭、母婴家居等领域的核心内容平台,其笔记评论区沉淀了大量真实用户反馈、种草痛点、消费决策、品牌口碑信息。 对品牌方、运营团队、数据服务商而言,评论数据可用于:
|
4月前
|
人工智能 自然语言处理 安全
零基础小白必看|阿里云秒级部署OpenClaw(Clawdbot),无缝接入MiniMax M2.5大模型全指南
2026年,AI智能体技术快速普及,OpenClaw(曾用名Clawdbot、Moltbot)作为轻量化开源AI自动化助手,凭借“自然语言驱动、多工具协同、零编程门槛”的核心优势,成为个人与轻量团队解锁自动化办公、代码开发、多场景任务处理的首选工具。它无需复杂操作,仅需输入口语化指令,就能自动完成文档整理、网页抓取、代码生成、定时任务、跨平台同步等重复性工作,堪称“7×24小时不下线的私人AI助理”,彻底解放双手、提升效率。
838 1
|
7月前
|
存储 弹性计算 人工智能
阿里云服务器 ECS 规格族解析:CPU 型号差异与性能参数对比
在阿里云 ECS 实例选型中,“规格族” 是决定性能、成本与适用场景的核心要素。许多用户会疑惑:相同 vCPU 与内存配置下,不同规格族为何价格差异显著?CPU 型号和主频究竟有何区别?本文结合阿里云今年最新实例迭代信息(如第九代 Intel 实例、AMD Turin 架构实例),从规格族定义、CPU 差异、性能参数对比三大维度展开解析,帮助用户精准匹配业务需求。
|
7月前
|
存储 NoSQL Linux
redis的I/O多路复用技术原理解析
Redis高性能源于内存存储、单线程模型、I/O多路复用及优化数据结构。其核心通过epoll实现非阻塞多路复用,以事件驱动高效处理高并发连接,结合SDS、跳表等结构,极致提升响应速度与资源利用率。
412 0