← Back to skills
extension
Category: Productivity & OfficeAPI key requirement unconfirmed

对标账号采集

采集小红书对标账号的主页信息(昵称、粉丝数、获赞与收藏、简介、小红书号、博主ID、IP 属地),按标准表格格式写进 `规律研究/对标账号/小红书对标博主.md`,并算出转粉率、按「1万–5万粉丝优先 + 组内转粉率降序」排好序。当用户说"采集对标账号""把这个博主加进对标账号""对标账号入库""采集这个主页"时使用。

personAuthor: sunny31221hubOpenAPI

对标账号采集

把「小红书博主主页链接」变成对标账号表里的一行。

安装方法

  1. 先问使用者用的是什么 AI 工具,选项按这个顺序列:1. WorkBuddy 2. Claude Code 3. Codex 4. 其他(用户直接说工具名),回答记作 X
  2. 只安装给 X,不安装或链接其他任何工具:
    • X 是 WorkBuddy:把本技能下载后放进 ~/.workbuddy/skills/(WorkBuddy 的技能目录;skills CLI 不支持 WorkBuddy,由你直接放置)

    • X 是其他工具:

      npx -y --registry=https://registry.npmmirror.com skills add https://modelscope.cn/skills/sunny31221/account-collect-buheliwa -a X -y
      

      (不带 -a 会安装给本机所有检测到的工具,禁止;--registry 为 npmmirror 镜像,保证国内不翻墙也能拉到 CLI)

    • X 不在上述范围时,按该工具自身的技能机制安装,装完确认 X 能识别本技能即可

  3. 装完后询问是否现在使用本技能

依赖什么

| 依赖 | 作用 | 装不上怎么办 | |---|---|---| | opencli | 驱动本机已登录的 Chrome 打开博主主页取数据 | npm i -g @jackwener/opencli;装不上就跳过并报原因 | | Chrome + opencli 浏览器扩展 | 真浏览器登录态,风控比脚本直连低 | 按 opencli 提示装扩展 | | 小红书登录态 | 未登录看不到完整主页数据 | 提示使用者本人登录小红书,不要代替登录 |

去哪装(推荐降级链:国际源失败 → 国内镜像):

npm i -g @jackwener/opencli
npm i -g @jackwener/opencli --registry=https://registry.npmmirror.com    # 国内镜像

验证是否就绪:

opencli xiaohongshu whoami     # 能返回当前登录的小红书账号就说明通了

触发场景

  • "采集对标账号" / "把这个博主加进对标账号" / "对标账号入库"
  • "采集这个主页" + 一条 xiaohongshu.com/user/profile/... 链接
  • 采集编排器在关卡前发现 对标账号链接.md 里有未处理的 user/profile 链接时提醒

不适用:

  • 采的是笔记内容(xiaohongshu.com/explore/...)→ 那是内容采集那条线的活,本技能只处理 user/profile 主页链接
  • 平台不是小红书 → 本技能目前只支持小红书;其他平台提示暂无

少花调用次数

有些链路按请求次数计费(第三方兼容接口的每日额度多是这样),不按 token。一次模型回复里发多个工具调用,只算 1 次请求;串行一次发一个,就一次一个数。同一个任务排得好坏,能差三倍次数。

  1. 能串的串成一条命令:python3 a.py && python3 b.py,中间结果用 $(...) 接住。互不依赖的命令别分成两次 Bash。
  2. 无依赖的一轮发完:抓取、下载、读文件这些互不依赖的动作,放在同一条回复里一起发。
  3. 脚本能批量就别逐条调:先看脚本的 --help,支持一次处理多条或整个目录的,就一次跑完。
  4. 输出要过滤:脚本输出配 head / grep 再看。全量输出进上下文既拖速度,也容易把关键信息淹掉。

工作流

第 1 步:取链接

两种来源,先看对话框,没有再看文件:

  • 使用者直接给了链接 → 用给的(一条或几条)
  • 说"采集对标账号"没给链接 → 读 规律研究/对标账号/对标账号链接.md,取里面所有 user/profile 链接

只挑主页链接:.../user/profile/... 是要处理的;.../explore/... 是笔记链接,跳过并在报告里单独列出"这几条是笔记链接,不归本技能管"。

第 2 步:逐条采集

对每条链接跑两步(<session> 自己起个名字,比如 xhs;同一个会话复用,不用每次重建):

# 1) 打开博主主页
opencli browser <session> open "<主页链接>"

# 2) 提取主页字段
opencli browser <session> eval "(() => { const s=window.__INITIAL_STATE__; const r=s&&s.user&&s.user.userPageData; if(!r) return 'NO_DATA'; const v=r._value||r.value||r._rawValue; if(!v||!v.basicInfo) return 'NO_PROFILE'; const b=v.basicInfo; const it={}; (v.interactions||[]).forEach(x=>it[x.name]=x.count); return JSON.stringify({nickname:b.nickname, redId:b.redId, gender:b.gender, ip:b.ipLocation, desc:b.desc||'', fans:it['粉丝'], likes:it['获赞与收藏'], follows:it['关注']}); })()"

要点:

  • 返回 NO_DATA / NO_PROFILE → 多半是没登录或页面没加载完,等两秒重跑一次;仍不行就提示使用者本人登录小红书
  • 昵称、简介里的换行要保留(表格里用 <br> 表示换行)
  • 拿不到的字段留空,不猜、不估

第 3 步:算转粉率、格式化数字

  • 转粉率 = 粉丝数 ÷ 获赞与收藏 × 100%,保留一位小数(例:228102 ÷ 1364387 = 16.7%)
  • 粉丝数 / 获赞与收藏:过万写成 X.X万(236666 → 23.7万;1433365 → 143.3万);不到万写原数

第 4 步:写入对标账号表

目标文件:规律研究/对标账号/小红书对标博主.md

表格列(照现有表头,不要改):

| 账号名称 | 粉丝数 | 转粉率 | 博主简介 | 获赞与收藏 | 博主链接 | 状态 | 小红书号 | 博主ID | |---|---|---|---|---|---|---|---|---|

三条规则:

  1. 去重:按博主ID 比对,已在表里的更新原有那一行(粉丝数、获赞与收藏会涨),不新增行
  2. 排序:1万–5万粉丝的排前面,其余排后面;两组内部都按转粉率从高到低
  3. 状态列:新采集的留空;使用者说这条账号已经采过内容了,才写「已入库」

第 5 步:回写链接文档

如果链接是从 对标账号链接.md 读的,采完在那条链接后面标上「已入库 ✓ <日期>」。已经是标记状态的不重复处理。

第 6 步:报告

一行汇总:本次处理了几条、新增几行、更新几行、哪几条不是主页链接被跳过。

字段对应关系

| 表格列 | 从哪来 | |---|---| | 账号名称 | nickname | | 粉丝数 | interactions 里 粉丝 的 count | | 转粉率 | 算的:粉丝数 ÷ 获赞与收藏 | | 博主简介 | desc(换行转 <br>) | | 获赞与收藏 | interactions 里 获赞与收藏 的 count | | 博主链接 | 使用者给的那条原始链接 | | 状态 | 默认空;已采过内容才写「已入库」 | | 小红书号 | redId | | 博主ID | 主页链接 user/profile/ 后面那串(basicInfo.userId 也可) |

约定(每条带来由与适用范围)

  1. 只用使用者本人的登录态:走本机已登录的 Chrome,不代替使用者登录、不绕过风控 适用与边界:管数据获取这一段。不适用:使用者自己复制粘贴过来的主页数据——那种直接入表,不走 opencli。

  2. 拿不到就留空:字段取不到不猜不估 适用与边界:没有例外。宁可空着让人一眼看出缺了,也不填一个看着像真的的假数。

  3. 不改表头、不重排他人手工加的备注 适用与边界:管 小红书对标博主.md 的表格结构。不适用:使用者明确要求调整表格格式时,按他说的改。

  4. 只处理主页链接:笔记链接不碰 适用与边界:管输入识别。不适用:使用者明确说"这条笔记里的博主也要加进来"——那就先解析出博主,再按主页处理。

不做什么

  • 不采笔记内容:笔记抓取归内容采集那条线(xiaohongshu-collect-buheliwa),本技能只管账号主页
  • 不判断账号值不值得对标:方向合不合、粉丝量够不够,那是使用者的判断,本技能只负责把数据填准
  • 不重写已有表格:只增行、只更新同 ID 的行,不动别人手工写的内容
  • 不主动批量跑全表:使用者没说就只处理他给的那几条;要批量处理 对标账号链接.md 里的全部链接,等他明确说