小红书笔记评论 API,Python 调用示例与完整 JSON 返回参考

以下是小红书笔记评论 API 的标准接口定义、Python 调用示例与完整 JSON 返回参考,覆盖主评论 + 子评论结构,可直接用于开发与数据解析。


一、接口基础信息(v2 标准)

  • 接口地址https://api.xiaohongshu.com/v2/notes/{note_id}/comments
  • 请求方式GET
  • 鉴权方式access_token(OAuth2.0)
  • 分页cursor 游标分页(替代传统 page)
  • 频率限制:默认每分钟 ≤ 100 次
必选参数
  • note_id:笔记 ID(从 URL 提取,如 649c46ab000000002702ad36
  • access_token:授权令牌
可选参数
  • cursor:上一页返回的游标(首次传空)
  • page_size:每页数量(默认 20,最大 100)
  • sort:排序(time 时间 / hot 热度)

二、Python 调用示例

python

运行

复制代码
import requests
import json

def get_xhs_note_comments(note_id, access_token, cursor="", page_size=20):
    """
    获取小红书笔记评论
    :param note_id: 笔记ID
    :param access_token: 授权令牌
    :param cursor: 分页游标
    :param page_size: 每页数量
    :return: 评论JSON数据
    """
    url = f"https://api.xiaohongshu.com/v2/notes/{note_id}/comments"
    headers = {
        "Authorization": f"Bearer {access_token}",
        "Content-Type": "application/json",
        "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1"
    }
    params = {
        "cursor": cursor,
        "page_size": page_size,
        "sort": "time"
    }

    try:
        response = requests.get(url, headers=headers, params=params)
        response.raise_for_status()
        return response.json()
    except requests.exceptions.RequestException as e:
        print(f"请求失败: {e}")
        return None

# 使用示例
if __name__ == "__main__":
    NOTE_ID = "649c46ab000000002702ad36"
    ACCESS_TOKEN = "your_access_token_here"
    
    comments = get_xhs_note_comments(NOTE_ID, ACCESS_TOKEN)
    if comments:
        print(json.dumps(comments, indent=2, ensure_ascii=False))

三、完整 JSON 返回参考(含子评论)

json

复制代码
{
  "code": 0,
  "msg": "success",
  "data": {
    "total": 128,
    "cursor": "651234567890abcdef123456",
    "has_more": true,
    "comments": [
      {
        "comment_id": "651234567890abcdef123456",
        "content": "这款产品真的太好用了,强烈推荐!",
        "create_time": 1712345678,
        "like_count": 125,
        "reply_count": 3,
        "is_top": false,
        "user": {
          "user_id": "5f8d3a3a000000000102e3a2",
          "nickname": "美妆达人小A",
          "avatar": "https://sns-avatar-qc.xhscdn.com/avatar/5f8d3a3a000000000102e3a2.jpg",
          "is_followed": false,
          "is_official": false
        },
        "sub_comments": [
          {
            "comment_id": "651234567890abcdef123457",
            "content": "请问敏感肌可以用吗?",
            "create_time": 1712345680,
            "like_count": 15,
            "user": {
              "user_id": "5d3e6b2a000000000101c3f5",
              "nickname": "敏感肌小C",
              "avatar": "https://sns-avatar-qc.xhscdn.com/avatar/5d3e6b2a000000000101c3f5.jpg"
            }
          },
          {
            "comment_id": "651234567890abcdef123458",
            "content": "@敏感肌小C 可以的,我也是敏感肌,用着很温和~",
            "create_time": 1712345690,
            "like_count": 8,
            "user": {
              "user_id": "5f8d3a3a000000000102e3a2",
              "nickname": "美妆达人小A",
              "avatar": "https://sns-avatar-qc.xhscdn.com/avatar/5f8d3a3a000000000102e3a2.jpg"
            }
          }
        ]
      },
      {
        "comment_id": "651234567890abcdef123459",
        "content": "求链接!",
        "create_time": 1712345700,
        "like_count": 42,
        "reply_count": 0,
        "is_top": false,
        "user": {
          "user_id": "6a7b8c9d000000000103d4g6",
          "nickname": "种草机小B",
          "avatar": "https://sns-avatar-qc.xhscdn.com/avatar/6a7b8c9d000000000103d4g6.jpg"
        },
        "sub_comments": []
      }
    ]
  }
}

四、关键字段说明

表格

字段 类型 说明
code int 状态码(0 = 成功)
msg string 状态信息
data.total int 评论总数
data.cursor string 下一页游标(用于翻页)
data.has_more bool 是否有更多数据
comments[].comment_id string 评论唯一 ID
comments[].content string 评论内容
comments[].create_time int 发布时间戳
comments[].like_count int 点赞数
comments[].reply_count int 回复数
comments[].user object 评论用户信息
comments[].sub_comments array 子评论(回复)列表

五、常见错误码

  • 401access_token 无效或过期
  • 403:无权限访问该笔记评论
  • 429:请求频率超限(需限流重试)
  • 500:服务器内部错误

六、合规与风控提示

  1. 必须通过官方开放平台申请权限,禁止爬虫逆向接口。
  2. 严格遵守频率限制,使用缓存与指数退避重试。
  3. 用户数据脱敏,不得泄露隐私信息。
  4. 数据仅用于合规场景(如舆情分析、内容运营)。

需要我基于这个返回结构,帮你写一个Python 解析脚本,自动提取所有评论(含子评论)并保存为 CSV/Excel 吗?

相关推荐
咩咩啃树皮7 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
灯澜忆梦7 小时前
GO_并发编程---定时器
开发语言·后端·golang
鱟鲥鳚7 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
-银雾鸢尾-7 小时前
C#中的StringBuilder相关方法
开发语言·c#
-银雾鸢尾-8 小时前
C#中结构体与类的区别;抽象类与接口的区别
开发语言·c#
大模型码小白9 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司9 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地10 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun31415910 小时前
TCP超时重传机制是为了解决什么问题?
java
段一凡-华北理工大学11 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化