当前位置: 首页
AI教程
小红书笔记评论API接口深度解析实战与JSON示例

小红书笔记评论API接口深度解析实战与JSON示例

热心网友 时间:2026-06-07
转载

小红书笔记评论API采用POST请求及OAuth2 0令牌鉴权,游标分页。原生JSON存在时间戳未格式化、父子评论嵌套、用户信息内嵌等问题。通过结构化解析实现时间格式转换、父子评论绑定及用户信息剥离,便于入库存储。接口常见异常包括token过期(401)和限流(429)。解析后的数据可用于舆情监控、竞品分析等场景。

小红书笔记评论 API 接口深度解析(带全套 JSON 示例・技术实战版)

从接口路径到异常处理,再到结构化入库,本文对小红书评论 API 进行了全面拆解。无论你是从事舆情监控、竞品分析,还是仅需批量拉取评论做数据统计,这篇文章都能帮你节省大量试错时间。

一、接口基础说明

1. 接口基础信息

接口路径为 /api/v1/note/comment/list,这是小红书开放平台的标准评论接口。

小红书笔记评论 API 接口深度解析(带全套 JSON 示例・技术实战版)

请求方式为 POST,鉴权需在 Header 中添加 Authorization: Bearer access_token,采用 OAuth2.0 令牌鉴权机制。分页规则较为特殊——使用游标 cursor 分页,传统的页码 page 已不再支持。首次请求时 cursor 传入空字符串,后续页使用上一页返回的 cursor 值。sort 参数支持 hot(按热度排序)或 time(按时间倒序),page_size 单页可设置 1~50 条。官方 QPS 限制为 5 次/秒,调用频率过高将被限流。 下面是一个请求入参的 JSON 示例: ```json { "note_id": "649c46ab000000002702ad36", "cursor": "", "page_size": 20, "sort": "hot", "need_sub_comment": true } ``` 具体参数说明见下表:
参数必填说明
note_id笔记唯一标识符(32 位字符串,可从笔记链接中提取)
cursor分页游标,空字符串表示第一页
page_size每页评论数量,默认 20 条
sorthot 表示按热度排序,time 表示按时间倒序
need_sub_commenttrue 表示同时返回楼中楼子评论

二、接口原生返回完整 JSON(真实脱敏样例)

下面展示接口原生返回的 JSON 结构。其层级较深,子评论嵌套在内部,时间字段采用 Unix 时间戳,用户信息嵌入在评论对象中——若想直接存入数据库或进行数据分析,几乎不可行。 ```json { "code": 200, "msg": "success", "request_id": "req_987654321abc", "data": { "note_id": "649c46ab000000002702ad36", "total_comment": 1256, "cursor": "crs_20260603_001", "has_more": true, "comments": [ { "comment_id": "com_1122334455", "content": "油皮亲妈!上脸清爽不闷痘,已经囤两瓶啦?", "create_time": 1744289620, "like_count": 326, "reply_count": 18, "is_top": true, "user": { "user_id": "u_589abc789", "nickname": "油痘肌避雷君", "a vatar": "https://sns-a vatar-qc.xhscdn.com/a vatar/abc123.jpg", "is_creator": false }, "sub_comments": [ { "comment_id": "sub_998877", "content": "想问多少钱入手的?", "create_time": 1744290120, "like_count": 12, "reply_user_id": "u_589abc789", "user": { "user_id": "u_321def654", "nickname": "奶茶不加冰", "a vatar": "https://sns-a vatar-qc.xhscdn.com/a vatar/def456.jpg" } } ] }, { "comment_id": "com_5566778899", "content": "@小丸子 敏感肌能用吗?", "create_time": 1744291200, "like_count": 45, "reply_count": 0, "is_top": false, "user": { "user_id": "u_789ghi123", "nickname": "护肤小白日常", "a vatar": "https://sns-a vatar-qc.xhscdn.com/a vatar/ghi789.jpg", "is_creator": false }, "sub_comments": [] } ] } } ```

顶层字段释义

- code:200 表示请求成功;401 表示 token 已失效;403 表示权限不足;429 表示接口被限流 - request_id:请求唯一标识,用于接口异常排查日志 - data.total_comment:笔记全量评论总数 - data.has_more:true 表示存在下一页数据,可继续游标翻页

三、原生 JSON 痛点

原生 JSON 存在以下几个明显的痛点: - 时间字段为 Unix 时间戳,业务层需手动格式化为 yyyy-MM-dd HH:mm:ss; - 主评论和子评论嵌套在一起,子评论归属关系不直观,解析时容易绕晕; - 用户信息内嵌在 comment 对象里,字段分散,不利于分表存储(评论表 vs 用户表); - 置顶标识 is_top 零散在各条评论中,想批量筛选出所有置顶评论需要额外遍历; - @关联用户没有结构化字段,@文本全混在 content 里,提取关键词得自己挖。

四、结构化解析后标准 JSON(落地入库模型)

针对上述问题,最直接的解决方案是对原生 JSON 进行结构化解析,将其拆分为扁平化格式。将主评论与子评论分离,时间格式统一,用户信息整合到独立对象中。这样生成的 JSON 可直接存入 MySQL 或 Elasticsearch,用于舆情分析、竞品评论统计等场景十分便捷。 ```json { "note_id": "649c46ab000000002702ad36", "total_comment": 1256, "next_cursor": "crs_20260603_001", "has_more": true, "main_comments": [ { "comment_id": "com_1122334455", "comment_type": "main", "content": "油皮亲妈!上脸清爽不闷痘,已经囤两瓶啦?", "create_time_stamp": 1744289620, "create_time": "2025-06-10 15:53:40", "like_count": 326, "reply_count": 18, "is_top": true, "user_info": { "user_id": "u_589abc789", "nickname": "油痘肌避雷君", "a vatar": "https://sns-a vatar-qc.xhscdn.com/a vatar/abc123.jpg" }, "sub_comments": [ { "comment_id": "sub_998877", "comment_type": "sub", "parent_comment_id": "com_1122334455", "content": "想问多少钱入手的?", "create_time_stamp": 1744290120, "create_time": "2025-06-10 16:02:00", "like_count": 12, "reply_target_uid": "u_589abc789", "user_info": { "user_id": "u_321def654", "nickname": "奶茶不加冰", "a vatar": "https://sns-a vatar-qc.xhscdn.com/a vatar/def456.jpg" } } ] }, { "comment_id": "com_5566778899", "comment_type": "main", "content": "@小丸子 敏感肌能用吗?", "create_time_stamp": 1744291200, "create_time": "2025-06-10 16:13:20", "like_count": 45, "reply_count": 0, "is_top": false, "user_info": { "user_id": "u_789ghi123", "nickname": "护肤小白日常", "a vatar": "https://sns-a vatar-qc.xhscdn.com/a vatar/ghi789.jpg" }, "sub_comments": [] } ] } ```

五、核心解析实战要点

在实际解析过程中,有几个关键细节需要注意: - **时间格式化**:将 create_time 时间戳统一转换为标准日期字符串,便于后续按天或按月统计评论数量。 - **父子评论绑定**:为子评论新增 parent_comment_id 字段,直接关联所属主评论的 ID,数据库内关联查询一步到位。 - **用户信息剥离**:将用户信息封装为 user_info 对象,方便后续与用户画像库关联。 - **空值容错**:sub_comments 在没有回复时默认返回空数组,避免数组遍历时抛出空指针异常。 - **分页闭环**:每次请求保存返回的 cursor,循环遍历直到 has_more 为 false,即可拉取笔记下全部评论。

六、接口异常返回 JSON 示例(错误处理参考)

接口调用难免遇到异常情况,如 token 过期或限流是常见问题。以下两个示例展示了最常见的异常场景: ```json { "code": 401, "msg": "access_token已过期,请重新授权", "request_id": "req_err_123456", "data": {} } ``` ```json { "code": 429, "msg": "接口调用超限,限流冷却10s", "request_id": "req_limit_789", "data": {} } ```

七、落地业务场景

解析后的评论数据可应用于多种实际业务场景: - **品牌舆情监控**:抓取评论关键词,统计好评与差评占比,分析用户对产品的真实痛点。 - **竞品数据分析**:对标同品类笔记的评论量、互动率,测算竞品的种草热度。 - **用户问答收集**:筛选出带有价格、使用方法等常见问题的评论,整理成 FAQ 知识库。

八、精简 Python 解析代码(配套实战)

最后,提供一段可直接运行的 Python 解析代码,核心逻辑是对原生 JSON 进行扁平化转换,已添加注释,稍作修改即可使用。 ```python import time def parse_xhs_comment(raw_json): res = {} resp_data = raw_json.get("data", {}) res["note_id"] = resp_data.get("note_id") res["total_comment"] = resp_data.get("total_comment",0) res["next_cursor"] = resp_data.get("cursor","") res["has_more"] = resp_data.get("has_more",False) main_list = [] #遍历主评论 for item in resp_data.get("comments",[]): main = { "comment_id":item["comment_id"], "comment_type":"main", "content":item["content"], "create_time_stamp":item["create_time"], "create_time":time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(item["create_time"])), "like_count":item["like_count"], "reply_count":item["reply_count"], "is_top":item["is_top"], "user_info":item["user"], "sub_comments":[] } #解析子评论 subs = [] for sub in item.get("sub_comments",[]): sub_item = { "comment_id":sub["comment_id"], "comment_type":"sub", "parent_comment_id":main["comment_id"], "content":sub["content"], "create_time_stamp":sub["create_time"], "create_time":time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(sub["create_time"])), "like_count":sub["like_count"], "reply_target_uid":sub.get("reply_user_id",""), "user_info":sub["user"] } subs.append(sub_item) main["sub_comments"] = subs main_list.append(main) res["main_comments"] = main_list return res
来源:https://developer.aliyun.com/article/1739312

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
天学会AI应用开发上下文与RAG阶段性总结

天学会AI应用开发上下文与RAG阶段性总结

系统梳理了AI应用开发中的上下文与RAG核心概念。搭建Python3 10开发环境后,通过提示词工程管理历史对话,利用截断、摘要提取及离线大模型压缩上下文。RAG采用加载文档、分块、向量化、存入FAISS或Chroma库、检索五个步骤,中文场景推荐BGE-small嵌入模型,实战证明离线检索有效。

时间:2026-07-12 16:04
Yank Note系列14:如何与AI协作写文章

Yank Note系列14:如何与AI协作写文章

YankNote3 92 1发布,新增“审阅批注”和“编辑装订线”扩展,聚焦AI写作的人机协作循环。审阅批注将反馈绑定到选中文本,编辑装订线高亮显示修改行,帮助人看清AI改动。同时升级Markdown-it至14 3 0,优化中日韩文本渲染。

时间:2026-07-12 16:04
一文读懂MCP:让AI大模型万能插拔协议

一文读懂MCP:让AI大模型万能插拔协议

MCP(模型上下文协议)由Anthropic提出,为AI大模型提供通用接口标准,解决工具调用碎片化问题。采用Host Client Server架构,支持动态发现工具,通过stdio或HTTP通信,实现工具即插即用、跨语言调用和统一对接规范。

时间:2026-07-12 16:04
BeeWeave开源:为AI Agent打造越用越懂你的知识创作台

BeeWeave开源:为AI Agent打造越用越懂你的知识创作台

BeeWeave是一个Agent原生的知识创作台,通过workbench和vault双层结构实现素材获取、内容创作、知识沉淀与上下文复用的持续闭环。它支持多Agent共用同一套知识库,内置41个Skills,采用MIT开源协议,旨在解决跨会话知识丢失问题。

时间:2026-07-12 15:04
AI闭环工程师自动推进工程任务

AI闭环工程师自动推进工程任务

LoopEngineer是一种将AI嵌入可执行、可验证、可持续迭代的工作循环中的工程协作方式。通过触发器、上下文、工具和验证机制,AI在循环中自动分析、执行、验证并调整,直至任务完成或需人工介入,实现复杂任务的可观察、可审计、可批准的分段自动化。

时间:2026-07-12 15:04
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜