返回博客

小红书 API 接入教程(Node.js):用 fetch 跑通第一个请求

Rnote API 团队 · · 37 次阅读 · English
小红书数据 API教程 Node.js

这篇教程带你用 Node.js 快速接入小红书(RedNote / Xiaohongshu)数据接口。和 Python 版教程一样,你无需自建爬虫——Rnote API 把采集基础设施都准备好了,你只发标准 HTTP 请求即可。

第一步:注册获取 API Key

前往注册页创建账户并验证邮箱,获取免费额度与 API Key。

第二步:发起第一个请求

Node.js 18+ 内置 fetch,无需额外依赖:

const API_BASE = "https://rnote.dev/api/v2/crawler";
const HEADERS = { "X-API-Key": "YOUR_API_KEY" };

async function searchNotes(keyword) {
  const url = new URL(`${API_BASE}/search/notes`);
  url.searchParams.set("keyword", keyword);
  url.searchParams.set("page", "1");
  const res = await fetch(url, { headers: HEADERS });
  if (!res.ok) throw new Error(`HTTP ${res.status}`);
  return res.json();
}

searchNotes("美食推荐").then(console.log);

第三步:封装一个带重试的客户端

async function call(path, params, retries = 3) {
  const url = new URL(`https://rnote.dev/api/v2/crawler/${path}`);
  Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v));
  for (let i = 0; i < retries; i++) {
    const res = await fetch(url, { headers: { "X-API-Key": "YOUR_API_KEY" } });
    if (res.ok) return res.json();
    await new Promise(r => setTimeout(r, 2 ** i * 1000)); // 指数退避
  }
  throw new Error("请求多次失败");
}

// 例:取图文笔记详情
call("note/image", { note_id: "697c0eee000000000a03c308" }).then(console.log);

仅成功请求(HTTP 2xx)扣费,失败重试不额外计费,所以可以放心加重试逻辑。

计费与额度

按请求计费、无月费、无最低消费;注册即送免费额度。充值方式与当前优惠见定价页

下一步

免费注册,现在就用 Node.js 发出第一个请求。