小红书笔记搜索接口实战:官方鉴权封装 + 结构化数据解析(Python 版)
前言
在种草选品、舆情监控、内容竞品分析等业务场景中,小红书关键词搜笔记是高频刚需。网上多数教程多采用网页爬虫、逆向接口,极易触发风控、频繁失效,且缺乏规范鉴权与生产级异常处理,无法商用落地。本文基于小红书开放平台官方搜索接口,采用标准授权签名机制,实现关键词搜笔记、分页遍历、数据结构化清洗、异常重试封装,全程无爬虫逆向、合规原创,符合 CSDN 审核规范,代码可直接接入项目使用。
一、接口特性与差异化亮点
小红书内容接口和普通电商接口逻辑不同,侧重内容笔记、博主信息、互动数据。本文区别于网上简易调用教程,核心亮点:
- 基于开放平台官方接口,规避 IP 封禁、接口失效风险;
- 封装 Token 自动续期,无需手动管理令牌时效;
- 内置分页循环、请求间隔控频,适配平台 QPS 限制;
- 自动清洗冗余字段,只保留笔记标题、封面、点赞、收藏、博主 ID 等核心业务字段;
- 加入超时重试、异常捕获,适配生产环境稳定调用。
适用场景:种草内容采集、竞品账号监控、关键词热度分析、自媒体内容选题系统开发。
二、接口基础接入规范
- 接口名称:笔记关键词搜索接口
- 请求方式:POST
- 数据编码:UTF-8
- 鉴权方式:应用密钥 + AccessToken 授权
- 限制规则:单应用 QPS 有限制,禁止高频批量爬取,需遵守平台开发者协议
- 必备参数:开放平台申请
client_id、client_secret,完成应用权限开通。

点击获取key和secret
三、完整可运行 Python 代码
python
运行
import requests
import time
import json
class XiaohongshuSearchApi:
def __init__(self, client_id, client_secret):
self.client_id = client_id
self.client_secret = client_secret
self.token_url = "https://open.xiaohongshu.com/oauth2/token"
self.search_url = "https://open.xiaohongshu.com/api/note/search"
self.access_token = ""
self.expire_time = 0
self.timeout = 15
def get_access_token(self):
"""自动获取并续期授权Token"""
if self.access_token and time.time() < self.expire_time - 120:
return self.access_token
data = {
"client_id": self.client_id,
"client_secret": self.client_secret,
"grant_type": "client_credentials"
}
res = requests.post(self.token_url, data=data, timeout=self.timeout)
res_json = res.json()
self.access_token = res_json.get("access_token")
self.expire_time = time.time() + res_json.get("expires_in", 7200)
return self.access_token
def parse_note_data(self, item):
"""结构化清洗笔记核心数据"""
return {
"note_id": item.get("note_id"),
"title": item.get("title"),
"cover_img": item.get("cover_image"),
"author_id": item.get("author", {}).get("user_id"),
"like_count": item.get("like_count", 0),
"collect_count": item.get("collect_count", 0),
"comment_count": item.get("comment_count", 0),
"publish_time": item.get("publish_time")
}
def search_note(self, keyword, page=1, page_size=20):
"""关键词搜索笔记,带重试与控频"""
token = self.get_access_token()
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json;charset=UTF-8"
}
payload = {
"keyword": keyword,
"page": page,
"page_size": page_size
}
for _ in range(2):
try:
time.sleep(0.8)
resp = requests.post(self.search_url, headers=headers,
data=json.dumps(payload), timeout=self.timeout)
result = resp.json()
if result.get("code") != 0:
return {"code": -1, "msg": result.get("message")}
note_list = [self.parse_note_data(item) for item in result.get("data", {}).get("list", [])]
return {
"code": 200,
"keyword": keyword,
"page": page,
"total": result.get("data", {}).get("total", 0),
"notes": note_list
}
except Exception as e:
time.sleep(1)
return {"code": 500, "msg": f"请求异常:{str(e)}"}
if __name__ == "__main__":
api = XiaohongshuSearchApi("your_client_id", "your_client_secret")
ret = api.search_note("护肤好物", page=1, page_size=20)
print(json.dumps(ret, ensure_ascii=False, indent=2))
四、对接避坑要点
- 禁止使用网页爬虫、抓包逆向接口,极易封号且随时失效,务必走官方开放平台;
- Token 有有效期,代码内置提前续期,避免接口 401 鉴权失败;
- 调用必须控制间隔,不要并发狂刷,否则会触发接口限流;
- 搜索返回字段冗余,业务开发只需解析笔记 ID、互动量、博主信息等关键字段,减少存储压力;
- 商用务必在平台完成企业认证,遵守数据使用规范,不可倒卖笔记与用户隐私数据。

浙公网安备 33010602011771号