# 怎么搜索小红书笔记并导出成 CSV 表格

> 按关键词搜小红书笔记，用排序和笔记类型筛选、翻页，再给留下的笔记拉全文和全部图片，最后存成一张 CSV：步骤、参数、代码和花费。

网页版：https://okdata.online/zh/guides/xiaohongshu-search-export-notes/

两个接口：先用小红书笔记搜索并按游标翻页，再对需要全文和图片的笔记调小红书笔记详情。下面的示例一共 8 次调用，花费 $0.16；失败的调用不扣费。

更新于 2026-11-12

要做的事：想把小红书上某个关键词下的内容整理成一张表格，有哪些笔记、谁写的、数据怎么样，再把其中最突出的几篇的完整正文和图片也拿下来。内容团队拿它给写手做 brief，产品团队拿它看用户怎么描述一个品类，分析师拿它按周追踪一个话题。搜索返回的是笔记卡片，详情返回的是整篇笔记。最后得到一张 CSV：搜索结果里的每篇笔记一行，排名前 5 的笔记再加上全文和所有图片链接。

整个过程不需要小红书账号，不用 Cookie，也不用处理 xsec_token。

## 分步操作

### 第一步：搜索，设好排序和类型

调用[小红书笔记搜索](https://okdata.online/zh/apis/xiaohongshu/notes/search/)，`query` 按用户的搜法写：`露营`、`露营 装备清单`、`新手露营`。有两个参数会改变结果：

- `sort`：`general`（默认，小红书自己的综合排序）、`latest`（最新）或 `popular`（最热）。按时间追踪话题用 `latest`，想看“什么内容效果好”用 `popular`。
- `type`：`all`（默认）、`image`（图文笔记）或 `video`（视频笔记）。

一次调用返回约 20 篇笔记，每次 $0.02。每张卡片有 `id`、`url`、`type`、`title`、`author`（昵称和 ID）、`published_at`、`hashtags`，以及 `metrics`：`likes`、`favorites`（收藏）、`comments` 和 `shares`。搜索卡片上的 `text` 只是正文开头一小段，`images` 通常也只有封面。

```bash
curl -G "https://api.okdata.online/v1/xiaohongshu/notes/search" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'query=露营' \
  --data-urlencode 'sort=latest' \
  --data-urlencode 'type=image'
```

### 第二步：翻页

要下一页，就把 `page.next_cursor` 原样作为 `cursor` 传回去，`query`、`sort`、`type` 保持不变。`page.has_more` 为 `false` 时停，或者够用了就停：每一页都是一次调用。越往后翻，结果离关键词越远，所以窄一点的词（`露营 装备清单`）翻几页，通常比宽泛的词（`露营`）翻很多页更有用。

### 第三步：给留下的笔记拉全文

[小红书笔记详情](https://okdata.online/zh/apis/xiaohongshu/notes/get/)接收 `id`（也可以用 `url` 传笔记链接或 xhslink 分享链接），返回整篇笔记，每次 $0.02：完整的 `text`、`images` 里的全部图片、`hashtags`，以及最新的 `metrics`。视频笔记只给封面图，不含视频文件。

```bash
curl -G "https://api.okdata.online/v1/xiaohongshu/notes/get" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'id=672a4f1d000000001b03c58e'
```

只给真正要读的笔记拉详情。搜索卡片上已经有各项数据，所以如果只要一张 60 篇笔记的点赞收藏表，根本不用调详情。

### 第四步：完整脚本

脚本读三页最新的“露营”图文笔记，挑出收藏最多的 5 篇拉全文，每篇笔记写一行 CSV。

```python
import csv
import os
import requests

API = "https://api.okdata.online"
HEADERS = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
SEARCH_PAGES = 3  # 每页一次调用
FULL_NOTES = 5    # 拉全文的笔记数；每篇一次调用


def get(path, **params):
    body = requests.get(API + path, headers=HEADERS, params=params, timeout=60).json()
    if body["code"] != "ok":
        raise RuntimeError(f"{body['code']}: {body['message']} (charged: {body['charged']})")
    return body


notes, cursor = [], None
for _ in range(SEARCH_PAGES):
    params = {"query": "露营", "sort": "latest", "type": "image", **({"cursor": cursor} if cursor else {})}
    body = get("/v1/xiaohongshu/notes/search", **params)
    notes += body["data"]["items"]
    if not body["page"]["has_more"]:
        break
    cursor = body["page"]["next_cursor"]

notes = list({n["id"]: n for n in notes}.values())  # 去掉跨页重复
top = sorted(notes, key=lambda n: n["metrics"]["favorites"] or 0, reverse=True)[:FULL_NOTES]
full = {n["id"]: get("/v1/xiaohongshu/notes/get", id=n["id"])["data"]["item"] for n in top}

with open("xhs_notes.csv", "w", newline="", encoding="utf-8-sig") as f:
    out = csv.writer(f)
    out.writerow(["id", "title", "author", "published_at", "likes", "saves", "comments", "url", "full_text", "images"])
    for n in notes:
        d = full.get(n["id"])
        m = (d or n)["metrics"]
        out.writerow([n["id"], n["title"], n["author"]["name"], n["published_at"], m["likes"], m["favorites"],
                      m["comments"], n["url"], d["text"] if d else "", " ".join(d["images"] or []) if d else ""])
```

用 `utf-8-sig` 编码，Excel 打开中文不乱码。搜 10 页、拉 20 篇全文是 $0.60。

## 注意事项

- **没有浏览量。** 小红书不公开浏览数，所以 `metrics.views` 为 null，`meta.unavailable` 里的原因是 `platform`。收藏数（`favorites`）最能说明一篇笔记有没有人想留着看。
- **时间是 UTC。** `published_at` 是 UTC 的 ISO 8601 格式，换成北京时间要加 8 小时。
- **笔记链接。** `url` 是不带参数的 `xiaohongshu.com/explore/<id>`。不带 token 在浏览器里打开可能看不到内容，原因和办法见 [xsec_token 那篇问答](https://okdata.online/zh/answers/xiaohongshu-xsec-token/)。
- **删掉的不收钱。** 搜索之后、拉详情之前被删的笔记返回 `not_found`，不扣费。
- **重试不会重复扣费。** 每次调用带一个 `Idempotency-Key` 请求头。24 小时内同样的请求配同样的 key，会直接拿回上次的结果，`meta.replayed` 为 `true`，不再扣费。
- **图片是链接。** 需要的图片跑完就下载下来，图片链接过一段时间可能失效。

搜索量大的时候怎么算钱，见[小红书笔记搜索 API 多少钱](https://okdata.online/zh/answers/xiaohongshu-note-search-api-price/)。想继续看这些笔记下面读者说了什么，用[小红书笔记评论](https://okdata.online/zh/apis/xiaohongshu/notes/comments/list/)读评论。

## 示例花费

按最新搜三页“露营”图文笔记，再给收藏最多的 5 篇拉全文和图片

| 接口 | 调用次数 | 单价 | 小计 |
|---|---|---|---|
| [小红书笔记搜索](https://okdata.online/zh/apis/xiaohongshu/notes/search/) | 3 | $0.02 | $0.06 |
| [小红书笔记详情](https://okdata.online/zh/apis/xiaohongshu/notes/get/) | 5 | $0.02 | $0.10 |
| 合计 | 8 |  | $0.16 |

按本页生成时的价格计算。失败的调用不扣费。

## 在你的 AI 里用（MCP）

先接好 MCP 服务，然后直接说你要什么。智能体会自己找到这些接口、看清价格，再用你的余额调用。

可以这样说：在小红书按最新搜“露营”的图文笔记，搜三页。把每篇笔记的标题、作者、点赞、收藏、评论数和链接做成表，收藏最多的 5 篇再补上全文和图片链接。

```json
{
  "endpoint": "xiaohongshu.notes.search",
  "params": {
    "query": "防晒霜 推荐"
  },
  "idempotency_key": "<新的 UUID>"
}
```

MCP：`https://api.okdata.online/mcp`

## 本指南用到的接口

- [小红书笔记搜索](https://okdata.online/zh/apis/xiaohongshu/notes/search/) `xiaohongshu.notes.search`：$0.02/次 · 每页约 20 篇笔记
- [小红书笔记详情](https://okdata.online/zh/apis/xiaohongshu/notes/get/) `xiaohongshu.notes.get`：$0.02/次

## 更多小红书内容

- [小红书 API](https://okdata.online/zh/apis/xiaohongshu/)
- [小红书 API Python 教程：笔记、博主和评论（2026）](https://okdata.online/zh/guides/xiaohongshu-api-python/)
- [怎么按关键词批量导出小红书评论](https://okdata.online/zh/guides/xiaohongshu-note-comments/)
- [怎么在小红书蒲公英按报价和阅读量筛达人](https://okdata.online/zh/guides/xiaohongshu-pgy-creator-rates/)
- [小红书返回 300011 账号异常，怎么继续采集笔记？](https://okdata.online/zh/answers/xiaohongshu-300011-account-abnormal/)
- [小红书爬虫返回 461 是什么原因？还能怎么拿到数据？](https://okdata.online/zh/answers/xiaohongshu-461-status-code/)
- [怎么在小红书上找到用户对某个品牌的吐槽和差评？](https://okdata.online/zh/answers/xiaohongshu-brand-complaints/)
- [人在海外，怎么让 AI 读到国内版小红书的数据？](https://okdata.online/zh/answers/xiaohongshu-data-for-agents-outside-china/)
- [怎么监控小红书关键词，每天拿到新发布的笔记？](https://okdata.online/zh/answers/xiaohongshu-keyword-monitoring-new-notes/)
- [小红书 MCP 部署到云服务器上总是超时，能不能不开浏览器？](https://okdata.online/zh/answers/xiaohongshu-mcp-docker-server-timeout/)
- [自己爬还是按次调用数据接口：成本、维护和风险](https://okdata.online/zh/compare/scraping-vs-data-api/)
- [怎么选社交媒体数据 API（2026）](https://okdata.online/zh/compare/social-media-data-apis/)
- [社媒数据 MCP 服务器：自己部署还是用托管的](https://okdata.online/zh/compare/social-media-data-mcp-servers/)
- [小红书数据接口有哪些？官方开放平台、第三方 API、开源爬虫 4 类方案怎么选（2026）](https://okdata.online/zh/compare/xiaohongshu-data-apis/)
