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

95
类别: 
开发交流

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

  1. 接入前提
    小红书开放平台 → 实名认证 → 创建应用 → 申请 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,可使用开源项目 https://gitcode.com/gh_mirrors/xh/xhs,基于 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 分钟上手,适合数据分析和竞品调研
不确定方向 → 先用官方创作者中心 + 第三方工具(新红/千瓜)手动验证需求,再决定是否投入开发

评论0
/ 1000
0
0
收藏