🐟 小红书·摸鱼(xhs-fish)
在 VSCode 里刷小红书。活动栏多一个鱼图标,点开就是信息流 —— 长得像代码侧边栏,深色主题贴合编辑器,封面图默认不加载,纯文字摸鱼,快且低调。
功能
- 扫码登录(推荐):点 ⚙ 弹出二维码,用小红书 App 扫码确认即自动完成登录 —— 原理是后台无头浏览器加载官方登录页,扩展通过 CDP 抠出二维码并监听登录状态,全程不碰签名逆向,不读你日常浏览器的任何数据(独立临时 profile)
- 手动 Cookie 登录:也可以粘贴浏览器里复制的小红书 Cookie(含
web_session 即可登录);支持导出到剪贴板带到其他机器;Cookie 加密存于 VSCode 密钥库
- 封面图默认不加载:信息流只显示标题 + 作者 + 点赞/收藏/评论数,封面是渐变占位块;可点开关加载全部,或点击某一张单独加载
- 笔记详情:纯文字查看正文、标签、数据;图片默认同样不加载,点击占位块再看
- 搜索:顶部搜索框回车即可
- 数据源:小红书网页版 SSR 页面(
window.__INITIAL_STATE__),不需要逆向 x-s 签名,抗变更能力强
安装
npm install && npm run compile
- VSCode → 扩展面板 →
... → 从 VSIX 安装,或:
- F5 直接调试(Extension Development Host)
npx @vscode/vsce package 打包后分享给别人
使用
- 点击活动栏的 🐟 图标(或状态栏「摸鱼」,或命令面板
小红书摸鱼: 打开摸鱼面板)
- 点面板右上角 ⚙ → 默认就是扫码登录:用小红书 App 扫码并在手机上确认,自动登录成功并刷新
- 开始摸鱼
没有摄像头/不想扫码?切到「手动 Cookie」标签页:浏览器打开 www.xiaohongshu.com 并登录,
F12 → Network → 刷新 → 任选一个请求 → 复制请求头里的 Cookie 值,粘贴保存即可。
也可以直接粘贴 EditThisCookie 等扩展导出的 JSON 数组。
面板右上角开关 = 封面图加载;默认关闭。
扫码登录需要本机装有 Chrome 或 Edge(用于后台无头加载官方登录页)。
常见问题
| 现象 |
处理 |
| 扫码登录提示「没有找到 Chrome / Edge」 |
扫码功能依赖本机的 Chrome/Edge 做后台登录页,装一个即可;或改用手动 Cookie |
| 二维码一直转圈/获取失败 |
检查网络能否访问 xiaohongshu.com,点「重新获取二维码」;仍不行就用手动 Cookie |
| 「未登录或 cookie 已失效」 |
cookie 过期了,重新扫码或复制一份导入 |
| 「被限流了(429)」 |
刷太频繁,歇几分钟;建议不要开多个页面同时刷 |
| 「没有获取到内容」 |
确认 cookie 完整(至少要有 web_session),或稍后再试 |
| 「没有找到该笔记的内容」 |
作者限制了该笔记,或 cookie 权限不足,换一篇 |
| 搜索无结果 |
部分搜索词需要登录态更强,重新导入 cookie 试试 |
已知限制
- 信息流为网页首屏 SSR 数据,每次约 20 条(小红书接口限制,SSR 无分页参数)
- 部分「保护笔记」需要
xsec_token,已带上传(信息流里有的话),实在不行的会提示
- 视频笔记默认不自动播放,打开封面开关后可在详情页内播放
技术栈
- VSCode Extension API(WebviewView + secrets 存储 + statusBar)
- 零运行时依赖:Node 18+ 内置
fetch 抓 SSR 页面,正则/深度遍历解析内嵌 JSON
- 扫码登录:手写最小 WebSocket 客户端走 CDP 驱动无头 Chrome(
src/cdp.ts + src/qrlogin.ts),不引第三方库
- 纯前端
panel.js 负责渲染,无框架
| |