给 AI

操作指南

怎么按关键词批量导出小红书评论

两个接口:先用小红书笔记搜索,再对留下的每篇笔记调小红书笔记评论。下面的示例一共 7 次调用,花费 $0.14;失败的调用不扣费。

更新于

要做的事:新品要上市,或者要和某个竞品正面竞争,想知道小红书用户对这个品类到底怎么说。笔记代表博主想让你看到的东西,笔记下面的评论才是读者真正在问、在怀疑、在比较的东西。所以先搜关键词,留下讨论最多的那几篇,再一页一页读评论。最后得到一张 CSV:笔记标题、评论内容、评论者、点赞数、回复数、时间,以及小红书在评论旁显示的 IP 属地。

整个过程不需要小红书账号,不用 Cookie,也不用处理 xsec_token。每次调用就是带着 key 发一个 HTTPS 请求。

分步操作

第一步:找到值得读的笔记

调用小红书笔记搜索,query 按用户在 App 里的搜法写:防晒霜、防晒霜 油皮、敏感肌 防晒。这里有两个参数要关注:

  • sort:general(默认,小红书的综合排序)、latest(最新)或 popular(最热)。挖评论时用 popular,互动最多的笔记通常就是讨论最热闹的。
  • type:all(默认)、video(视频笔记)或 image(图文笔记)。除非只关心一种形式,否则保持 all。

一次调用返回约 20 篇笔记,每次 $0.02。每篇有 id(24 位十六进制)、title、正文开头、author、published_at,以及包含点赞、收藏(favorites)和评论数的 metrics。按 metrics.comments 排序,就知道该打开哪几篇。

curl -G "https://api.okdata.online/v1/xiaohongshu/notes/search" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'query=防晒霜' \
  --data-urlencode 'sort=popular' \
  --data-urlencode 'fields=id,title,metrics.comments,metrics.likes,published_at'

fields 只保留你点名的字段,返回更短,价格不变。

第二步:一页页读评论

把笔记 id 传给小红书笔记评论。一次调用返回约 10 条一级评论,每次 $0.02。每条有 text、author(昵称和 ID)、likes、replies(下面有几条回复)、published_at 和 ip_location。这些都是一级评论,所以 parent_id 为 null。要下一页,就把 page.next_cursor 原样作为 cursor 传回去;page.has_more 为 false 时说明到底了。

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

小红书的评论一页条数不多,所以预算要按页算,不要按笔记算:1000 条评论大约要 100 次调用。

第三步:用 Python 串起来

下面的脚本搜索一次,按评论数挑出前 3 篇笔记,每篇最多读 MAX_PAGES 页,最后写成一张 CSV。

import csv
import os
import requests

API = "https://api.okdata.online"
HEADERS = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
NOTES = 3      # 打开几篇笔记
MAX_PAGES = 2  # 每篇读几页评论;每页一次调用


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 = get("/v1/xiaohongshu/notes/search", query="防晒霜", sort="popular")["data"]["items"]
notes = sorted(notes, key=lambda n: n["metrics"]["comments"] or 0, reverse=True)[:NOTES]

with open("xhs_comments.csv", "w", newline="", encoding="utf-8-sig") as f:
    out = csv.writer(f)
    out.writerow(["note_id", "note_title", "comment", "user", "likes", "replies", "ip_location", "published_at"])
    for n in notes:
        cursor = None
        for _ in range(MAX_PAGES):
            params = {"id": n["id"], **({"cursor": cursor} if cursor else {})}
            body = get("/v1/xiaohongshu/notes/comments/list", **params)
            for c in body["data"]["items"]:
                out.writerow([n["id"], n["title"], c["text"], c["author"]["name"], c["likes"],
                              c["replies"], c["ip_location"], c["published_at"]])
            if not body["page"]["has_more"]:
                break
            cursor = body["page"]["next_cursor"]

想覆盖更多笔记、读得更深,就调大 NOTES 和 MAX_PAGES。10 篇笔记各读 5 页是 50 次评论调用,在搜索之外再花 $1.00。按每 1000 条评论算,大约 $2.00。

注意事项

  • 条数和笔记上的数字对不上。 笔记显示的评论数包含了楼中楼回复。这个接口列的是一级评论,每条的回复数在 replies 里,但没有回复正文,所以拿到的行数会比 metrics.comments 少。
  • 排序。 评论按小红书默认顺序返回,没有排序参数,也没有按最新排序的选项。
  • IP 属地。 ip_location 是小红书显示在评论旁边的省份或国家,没显示时为 null。
  • 不用管 token。 只传笔记 ID 就行。为什么这一点在小红书上很重要,见 xsec_token 那篇问答。
  • 删掉的笔记不收钱。 已删除或设为私密的笔记返回 not_found,不扣费,跳过即可。
  • 重试不会重复扣费。 每次调用带一个 Idempotency-Key 请求头。24 小时内同样的请求配同样的 key,会直接拿回上次的结果,meta.replayed 为 true,不再扣费。

如果是要导出某一篇笔记下的全部评论,看怎么导出小红书笔记的全部评论。想把评论整理成用户痛点和问题清单,看怎么用大模型从抖音和小红书评论里找痛点。

示例花费

按最热搜一页“防晒霜”笔记,再取评论最多的 3 篇,每篇读两页评论

接口调用次数单价小计
小红书笔记搜索1$0.02$0.02
小红书笔记评论6$0.02$0.12
合计7$0.14

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

在你的 AI 里用(MCP)

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

可以这样说在小红书按最热搜“防晒霜”,挑评论最多的 3 篇笔记,每篇读两页评论,整理成一张表:笔记标题、评论内容、点赞、回复数、IP 属地、时间。

智能体第一次调用 call 工具时发送的内容
{
  "endpoint": "xiaohongshu.notes.search",
  "params": {
    "query": "防晒霜 推荐"
  },
  "idempotency_key": "<新的 UUID>"
}

配置 MCP 服务 →

接上一次,以后直接问 AI。

新 key 自带 $0.10 试用额度。贴一句话,就能接进你的智能体。

免费开始
一句话接进你的 AI

把这句话发给你的智能体

读一下 https://okdata.online/zh/agents.md,帮我把 okdata 配好;我的 key 在环境变量 OKDATA_API_KEY 里。

Claude Code、Cursor、Codex 等能打开网址的智能体,读完会自己配好。

MCP 地址https://api.okdata.online/mcp