小红书热门账号推荐
概述
提供小红书全品类/分品类账号每日/每周/每月的表现榜单查询。支持三大核心能力:
- 排名查询 — 查日榜、周榜、月榜 TOP50
- 领域查询 — 按品类筛选(美妆、美食、旅行、母婴、健身/体育锻炼等)
- 报告下载 — 生成 HTML 可视化报告,支持导出 PDF/截图
- 定时订阅 — 设置自动化定时推送
环境准备
无需安装第三方依赖,使用 Python 标准库 urllib 发送请求即可。
鉴权
获取 API Key
请前往 红狐hub 获取API KEY
配置 API Key
方案1: 以OpenClaw为例,将REDFOX_API_KEY添加到~/.openclaw/openclaw.json中,部分内容如下:
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
方案2: 终端配置
export REDFOX_API_KEY="ak_xxxx..."
触发词与意图识别
| 用户意图 | 典型触发词 | 对应操作 |
|---|---|---|
| 排名查询 | 小红书日榜、周榜、月榜、TOP50、最夯账号、排行榜、最新推荐 | 调用 API 并格式化输出 |
| 领域查询 | 美妆类/美食类/旅行类/母婴类/健身类...小红书排名 | 调用 API 并按 category 筛选 |
| 报告下载 | 下载报告、导出榜单、生成报告 | 使用 --html 参数自动生成 HTML |
| 定时订阅 | 订阅日榜/周榜/月榜、定时推送、每天发给我 | 创建 WorkBuddy Automation |
执行流程
严格输出顺序(必须按顺序执行,不得跳过)
第一步:内容输出
- 调用脚本查询榜单数据(默认只查20条):
python scripts/fetch_rank.py --query "用户原始问题" --limit 20 --html - 按标准模板格式化输出榜单数据(Markdown 表格形式,最多20条)
第二步:询问定时订阅
- 输出完榜单数据后,直接追加以下询问(不等待用户回复):
📬 订阅服务 1️⃣ 是否需要订阅每日/周/月的小红书账号最新排名,订阅后定时推送给您? 2️⃣ 是否需要订阅具体赛道的账号表现?我们支持:综合全部、出行代步、休闲爱好、影视娱乐、数码科技、医疗保健、综合杂项、星座情感、时尚穿搭、婚庆婚礼、拍摄记录、学习教育、化妆美容、居家装修、旅行度假、亲子育儿、个人护理、美味佳肴、职业发展、宠物天地、潮流鞋包、日常生活、科学探索、新闻资讯、体育锻炼
第三步:交付 HTML 报告
- 脚本已自动生成HTML文件,使用 deliver_attachments 工具交付脚本输出的 HTML 文件路径
- 追加以下内容:
⚡ 更多操作 • 点击下方下载HTML报告文件,可在浏览器中打开查看,支持一键导出PDF/高清图片 • 本次榜单完整共50条数据,是否需要查看全部?
用户表示需要查看全部数据时:
⚠️ 强制要求:必须同时输出 Markdown 表格和交付 HTML 报告,两者缺一不可。
- 重新调用脚本获取完整50条数据:
python scripts/fetch_rank.py --query "用户原始问题" --limit 50 --html - 在对话中输出完整50条数据的 Markdown 表格(按标准模板格式)
- 必须使用 deliver_attachments 交付 HTML 文件(关键步骤,不可遗漏),告知用户"以下是完整50条数据的 HTML 报告,可直接点击下载查看"
流程一:排名查询(推荐:自然语言模式)
直接传入用户原始问题,脚本自动完成全部解析:
python scripts/fetch_rank.py --query "用户原始问题" --limit 20 --html
自动解析逻辑:
① 时间判断与日期计算
根据当前时间判断最新数据是否已更新:
| 榜单类型 | 更新时间 | 当前时间 < 更新时间 | 当前时间 >= 更新时间 |
|---|---|---|---|
| 日榜 | 每日 19:00 | 取前2天 (offset=2) | 取前一天 (offset=1) |
| 周榜 | 每周一 15:00 | 取前2周 (offset=2) | 取前1周 (offset=1) |
| 月榜 | 每月2号 上午9:00 | 取前2月 (offset=2) | 取前1月 (offset=1) |
日期计算公式:
- 日榜:
date.today() - timedelta(days=offset) - 周榜:
date.today() - timedelta(weeks=offset)后的最近周一 - 月榜:
date.today() - timedelta(days=30*offset)后的每月2号
更新规则(输出时告知用户):
- 日榜:每日 19:00 更新
- 周榜:每周一 15:00 更新
- 月榜:每月 2号 9:00 更新
② 周期判断
自动从用户文本中识别日/周/月(无明确则默认日榜):
- 含"周"/"周榜"→
week - 含"月"/"月榜"→
month - 其余默认 →
day
③ 回溯范围校验
| 榜单类型 | 最大回溯 | 超范围处理 |
|---|---|---|
| 日榜 | 近7天 | 自动切换至最近可用日期 |
| 周榜 | 近3周 | 自动切换至最近可用日期 |
| 月榜 | 近3个月 | 自动切换至最近可用日期 |
超出范围时:-若用户查询当日及未来日期的榜单,在榜单说明输出中增加:「非常抱歉🙏,我们最新的是昨日/上周/上月的数据,将为您提供最接近您需求的昨日/上周/上月热榜。」-若用户查询时间早于回溯日期,在榜单说明输出中增加回复:「非常抱歉🙏,目前榜单最多支持回溯「过去7天/过去3周/过去3月」,我将为您查询最接近您需求的时间范围~」
④ 赛道(type)匹配
支持模糊匹配,映射表见 references/api_docs.md。
常用映射:
| 用户说 | 映射到 |
|---|---|
| 健身、运动、瑜伽 | 体育锻炼 |
| 美妆、彩妆、护肤 | 化妆美容/个人护理 |
| 美食、探店、烹饪 | 美味佳肴 |
| 旅行、旅游 | 旅行度假 |
| 母婴、育儿 | 亲子育儿 |
| 穿搭、时尚 | 时尚穿搭 |
若无法匹配,输出综合全部,并告知用户无法识别的赛道类别。
⑤ 数据回退机制
重要:部分分类(如体育锻炼)在某些日期可能返回空数据。此时应:
- 自动尝试前一个日期
- 最多回退3天
- 若仍无数据,告知用户该分类在该时间段暂无数据
流程二:报告下载
- 查询时加
--html --limit 50参数,脚本会自动生成HTML报告 - 调用
deliver_attachments交付 HTML 文件(账号名均可点击跳转小红书主页)
流程三:定时订阅
- 询问订阅周期(每日 / 每周 / 每月)。
- 使用
automation_update创建自动化任务:- 每日订阅:
FREQ=DAILY;BYHOUR=8;BYMINUTE=0 - 每周订阅:
FREQ=WEEKLY;BYDAY=MO;BYHOUR=8;BYMINUTE=0 - 每月订阅:
FREQ=WEEKLY;BYDAY=MO;BYHOUR=8;BYMINUTE=0;INTERVAL=4
- 每日订阅:
- automation prompt:
查询小红书最新{period}榜(综合全部)并推送给用户
标准输出模板
必须按以下顺序输出,不得跳过任何步骤:
第一步:内容输出
📊 小红书{period_label} · {category_label}
数据日期:{date}
共 {total} 个账号上榜
💡 榜单说明:{period_update_time}更新昨日/上周/上月数据。
📐 排名算法:排名根据达人在小红书的**总粉丝数**、周期内的**粉丝增量**、**点赞增量**、**收藏增量**、**分享增量**以及**评论增量**加权计算所得,满分100分。
| 排名 | 账号名 | 综合评分 | 总粉丝数 | 新增笔记 | 新增粉丝 | 新增点赞 | 新增评论 | 新增收藏 | 新增分享 |
|:---:|--------|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|
| 🥇 1 | 账号A · 赛道 | 96 | 254.06w | 7 | 6919 | 24.64w | 6.68w | 2.53w | 13.39w |
| 🥈 2 | 账号B · 赛道 | 89 | 113.55w | 1 | 1.91w | 7.90w | 4787 | 2.18w | 3.12w |
| 🥉 3 | 账号C · 赛道 | 87 | 439.14w | 2 | 5859 | 16.51w | 993 | 7688 | 687 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
统计概览:上榜账号 {total} · 最高互动 {max_interaction} · 总新增笔记 {total_notes}
第二步:询问定时订阅(直接追加,不等待回复)
📬 订阅服务
1️⃣ 是否需要订阅每日/周/月的小红书账号最新排名,订阅后定时推送给您?
2️⃣ 是否需要订阅具体赛道的账号表现?我们支持:综合全部、出行代步、休闲爱好、影视娱乐、数码科技、医疗保健、综合杂项、星座情感、时尚穿搭、婚庆婚礼、拍摄记录、学习教育、化妆美容、居家装修、旅行度假、亲子育儿、个人护理、美味佳肴、职业发展、宠物天地、潮流鞋包、日常生活、科学探索、新闻资讯、体育锻炼
用户回复"需要订阅"时,使用 calendar_create 工具创建日程:
- 参数:
title: 小红书{period_label}榜单推送description: 订阅小红书{period_label}榜单,自动查询并推送最新排名数据start_time: 根据订阅周期计算(每日08:00/每周一08:00/每月2号08:00)end_time: start_time 后1小时reminder: 0(不需要提醒)
- 创建成功后告知用户日程已创建
第三步:交付 HTML 报告(必须交付)
⚠️ 强制要求:必须立即使用 deliver_attachments 交付文件,不得仅提示用户下载而不实际交付。
- 脚本已自动生成HTML文件(路径在输出末尾)
- 必须使用 deliver_attachments 交付 HTML 文件(这是关键步骤,遗漏将导致用户看不到报告)
- 交付后追加以下提示:
⚡ 更多操作
• 点击下方下载HTML报告文件,可在浏览器中打开查看,支持一键导出PDF/高清图片
• 本次榜单完整共50条数据,是否需要查看全部?
⚠️ 字段说明:
- 最高互动:互动总数 = 点赞 + 评论 + 收藏 + 分享,取榜单中互动最高的账号
- 当前接口仅返回各细分字段(总粉丝数、新增粉丝、新增点赞、新增评论、新增收藏、新增分享)
- 赛道展示在账号名下方,使用 "账号名 · 赛道" 格式
HTML 报告模板规范
表格列规范
| 列名 | 说明 |
|---|---|
| 排名 | 1-3名使用金银铜牌样式,其余使用灰色徽章 |
| 账号名 | 可点击跳转小红书主页,赛道展示在账号名下方 |
| 总粉丝数 | 格式:254.06w |
| 新增笔记 | 整数 |
| 新增粉丝 | 整数或带 w 单位 |
| 新增点赞 | 带 w 单位 |
| 新增评论 | 整数或带 w 单位 |
| 新增收藏 | 整数或带 w 单位 |
| 新增分享 | 整数或带 w 单位 |
注意:不展示综合评分列,表格从11列减少到9列。
统计卡片规范
| 指标 | 说明 |
|---|---|
| 上榜账号 | 榜单总数,默认50 |
| 最高互动 | 互动总数 = 点赞 + 评论 + 收藏 + 分享 |
| 总新增笔记 | 所有账号新增笔记之和 |
榜单说明与排名算法
<div class="notice">
<div style="margin-bottom: 8px;">
💡 <strong>榜单说明</strong>:{period_update_desc}更新,与实时数据存在差异。
</div>
<div>
📐 <strong>排名算法</strong>:排名根据达人在小红书的
<strong>总粉丝数</strong>、周期内的
<strong>粉丝增量</strong
>、<strong>点赞增量</strong>、<strong>收藏增量</strong>、<strong
>分享增量</strong
>
以及 <strong>评论增量</strong> 加权计算所得。
</div>
</div>
API 参数说明
接口信息
- URL:
POST https://redfox.hk/story/api/xhsData/query - 成功码:
code: 2000(非0!) - 认证方式:
X-API-KEYHeader(从环境变量REDFOX_API_KEY获取)
请求头
| Header | 值 | 说明 |
|---|---|---|
| Content-Type | application/json | 必填 |
| X-API-KEY | ak_xxxxxxxx | 从环境变量 REDFOX_API_KEY 获取,必填 |
请求参数
| 参数名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| dateType | int | 榜单类型:1=日榜, 2=周榜, 3=月榜 | 1 |
| rankDate | string | 日期(格式:YYYY-MM-DD) | "2026-04-28" |
| type | string | 赛道名称(中文) | "体育锻炼" |
| source | string | 必须为 小红书指数榜 | "小红书指数榜" |
各榜单日期参数
| 榜单类型 | rankDate 格式 | 示例 | offset计算 |
|---|---|---|---|
| 日榜 | YYYY-MM-DD(前一天或前两天) | "2026-04-28" | 当前时间<19:00→offset=2, ≥19:00→offset=1 |
| 周榜 | YYYY-MM-DD(周一) | "2026-04-20" | 当前时间周一<15:00→offset=2, 否则→offset=1 |
| 月榜 | YYYY-MM-02(每月2号) | "2026-04-02" | 当前时间2号<09:00→offset=2, 否则→offset=1 |
返回字段
| 字段 | 说明 |
|---|---|
| accountName | 账号名 |
| category | 赛道分类 |
| followers | 总粉丝数 |
| newNoteCount | 新增笔记数 |
| newFans | 新增粉丝 |
| newLikes | 新增点赞 |
| newComments | 新增评论 |
| newCollects | 新增收藏 |
| newShares | 新增分享 |
| profileUrl | 小红书主页链接 |
使用示例
示例1:查询美妆类日榜
- 场景/输入:用户说"小红书美妆日榜"
- 预期产出:返回美妆类当日 TOP20 榜单数据
- 关键要点:自动解析赛道为"化妆美容",日期自动计算为最新可用日期
示例2:查询美食类周榜
- 场景/输入:用户说"最新美食周榜"
- 预期产出:返回美食类上周榜单
- 关键要点:自动解析周期为 week,赛道为"美味佳肴"
示例3:生成 HTML 报告
- 场景/输入:用户需要导出完整报告
- 预期产出:生成可下载的 HTML 文件
- 关键要点:调用 fetch_rank.py 时加 --html 参数自动生成HTML报告
资源索引
- 脚本:见 scripts/fetch_rank.py(用途:查询小红书榜单数据)
- 脚本:见 scripts/generate_report.py(用途:被 fetch_rank.py --html 调用生成 HTML)
- 参考:见 references/api_docs.md(何时读取:需要查看 API 详细参数说明时)
注意事项
- 日榜默认展示 TOP 20,完整 50 条通过报告或追问查看。
- 赛道关键词支持 LLM 语义模糊匹配,实在无法识别时降级为综合全部。
- HTML 报告账号名均可点击跳转小红书主页(基于
profileUrl字段)。 - 生成报告前确保 workspace 有写权限。
- 最高互动需要根据点赞+评论+收藏+分享计算,不能直接使用接口返回的
newInteraction字段(该字段值可能为0)。 - 月榜日期参数必须使用每月2号,如查询上月榜单用 "2026-04-02"。
- 体育锻炼分类:部分日期可能返回空数据,需要自动回退日期。