小红书笔记详情 API 接口解析

一、两条路径:官方 API vs 第三方采集

维度 官方开放平台 API 第三方采集方案(如 xhs 项目)
适用对象 企业/认证开发者 个人开发者、中小团队
权限门槛 需企业资质审核,周期数周 无门槛,注册即用
数据合规性 ✅ 完全合规 ⚠️ 仅限公开数据,需自律
调用频率 官方限制,稳定性高 需自行控制频率
接口地址 https://open.xiaohongshu.com/api/note/detail 基于 Web 端请求封装

二、官方 API 完整解析

1. 接入前提

复制代码
复制代码
https://o0b.cn/lafite` → 实名认证 → 创建应用 → 申请 red.note.detail.get 权限 → 审核通过 → 获得 app_key + app_secret
`

⚠️ 笔记详情 API 不对个人开发者开放,仅限通过企业资质审核的合作方。

2. 鉴权机制(双重鉴权)

鉴权方式 说明
HMAC-SHA256 签名 对参数按 ASCII 升序排序,拼接 key=value 字符串,用 app_secret 生成 sign 字段
Access Token 通过 OAuth2.0 获取,用于个性化查询(如判断当前用户是否点赞)
时间戳校验 timestamp 与服务器偏差不超过 ±5 分钟,防重放攻击

签名生成逻辑(Python)

复制代码

python

复制代码
`import hmac, hashlib, time

def generate_sign(app_secret, params):
    sorted_params = sorted(params.items(), key=lambda x: x[0])
    sign_str = "&".join([f"{k}={v}" for k, v in sorted_params])
    return hmac.new(
        app_secret.encode(),
        sign_str.encode(),
        hashlib.sha256
    ).hexdigest()
`

3. 请求参数

参数 类型 必填 说明
app_key String 应用唯一标识
sign String HMAC-SHA256 签名
timestamp Long 当前时间戳(秒级)
access_token String 用户授权令牌,个性化查询需要
note_id String 笔记唯一标识
fields String 筛选字段,如 title,content,like_count
include_comments Bool 是否包含评论列表

4. 返回数据结构

复制代码

json

复制代码
`{
  "code": 0,
  "msg": "success",
  "data": {
    "note_id": "648a7b2f0000000012345678",
    "title": "夏日穿搭|平价T恤合集",
    "desc": "这几件T恤真的太好穿了...",
    "category": "fashion",
    "tags": ["夏日穿搭", "平价T恤", "学生党"],
    "media": {
      "images": ["https://xxx.xiaohongshu.com/xxx/1.jpg"],
      "video": null
    },
    "author": {
      "user_id": "12345678",
      "nickname": "穿搭小能手",
      "avatar": "https://xxx.xiaohongshu.com/xxx/avatar.jpg",
      "is_verified": true
    },
    "interaction": {
      "like_count": 12580,
      "collect_count": 3620,
      "comment_count": 890,
      "share_count": 120
    },
    "location": {"name": "上海市徐汇区", "latitude": 31.197, "longitude": 121.436},
    "status": "published",
    "is_commercial": false
  }
}
`

5. Python 调用示例

复制代码

python

复制代码
`import requests, time, hmac, hashlib

APP_KEY = "your_app_key"
APP_SECRET = "your_app_secret"
NOTE_ID = "63f5a8a1000000001f03c4a5"

def get_note_detail(note_id, access_token=None):
    url = "https://openapi.xiaohongshu.com/v2/note/detail"
    timestamp = str(int(time.time()))
    
    params = {
        "app_key": APP_KEY,
        "note_id": note_id,
        "timestamp": timestamp,
        "access_token": access_token or ""
    }
    params["sign"] = generate_sign(APP_SECRET, params)
    
    headers = {"Content-Type": "application/json"}
    resp = requests.get(url, params=params, headers=headers, timeout=10)
    return resp.json()

result = get_note_detail(NOTE_ID)
print(result["data"]["title"])      # 笔记标题
print(result["data"]["interaction"]["like_count"])  # 点赞数
`

三、第三方采集方案(xhs 项目)

如果无法申请官方 API,可使用开源项目 AtomGit | GitCode - 全球开发者的开源社区,开源代码托管平台,基于 Web 端请求封装,零门槛上手。

快速开始

复制代码

bash

复制代码
`pip install xhs
`

核心代码

复制代码

python

复制代码
`from xhs import XhsClient

client = XhsClient(cookie="你的Cookie")

# 1. 搜索笔记
results = client.search(keyword="早C晚A", page=1, page_size=20)
for item in results["items"][:3]:
    print(item["title"], item["likes_count"])

# 2. 获取笔记详情
note = client.get_note_by_id("笔记ID")
print(note["title"], note["desc"][:100], note["like_count"])

# 3. 获取用户全部笔记
user_notes = client.get_user_notes("用户ID")
for n in user_notes[:5]:
    print(n["title"], n["like_count"], n["collect_count"])

# 4. 获取评论
comments = client.get_note_comments("笔记ID")
`

搜索接口(无需 Cookie)

复制代码

python

复制代码
`import requests

def search_notes(keyword, page=1):
    url = "https://www.xiaohongshu.com/api/sns/web/v1/search/notes"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
        "Referer": "https://www.xiaohongshu.com/"
    }
    params = {
        "keyword": keyword,
        "page": page,
        "page_size": 20,
        "sort": "general"  # hot=按热度
    }
    resp = requests.get(url, headers=headers, params=params, timeout=10)
    return resp.json()["data"]["items"]
`

四、数据应用方案

场景 实现方式 工具建议
热门内容分析 统计高频关键词、标签 Pandas + TF-IDF
用户行为预测 基于互动数据建模型 Scikit-learn
竞品监测 定期抓取竞品笔记声量 定时任务 + MongoDB
A/B 测试 对比不同封面/标题效果 Excel 双轴折线图

五、关键注意事项

风险点 应对措施
频率限制 官方 API 每分钟 ≤100 次;采集方案建议 1-3 秒/次
429 限流 实现指数退避重试机制
数据合规 遵守《个人信息保护法》,不存储手机号/地址,敏感数据脱敏
Cookie 过期 xhs 方案需定期更新 Cookie,推荐二维码登录
接口变更 小红书 API 更新频繁,建议关注开放平台公告

总结建议

  • 有企业资质 → 走官方 API,稳定合规,适合长期业务
  • 个人/快速验证 → 用 xhs 项目,5 分钟上手,适合数据分析和竞品调研
  • 不确定方向 → 先用官方创作者中心 + 第三方工具(新红/千瓜)手动验证需求,再决定是否投入开发