RedBookC —— 最新的小红书自动发帖 Agent 完整开源,搭建后 100% 可立即使用
做小红书运营的人都知道,小红书的反作弊机制是国内各大平台里最严的之一。 市面上绝大多数所谓的「小红书自动发帖工具」,走的都是Cookie注入的路线——把登录后的Cookie抠出来,直接拿去调接口发帖。听起来可行,但现实是这条路基本走不通。 小红书的Cookie体系极其复杂。真实登录之后,除了基础的身份Cookie,还有大量动态生成的签名参数、设备指纹、行为token,这些东西绑定了具体的设备环境和浏览器上下文。你把Cookie抠出来拿到别的地方用,小红书后端立刻就能识别出来——设备特征对不上,行为链路断了,轻则接口返回错误,重则直接触发风控封号。 网上流传的那些Cookie导入教程,基本上现在都已经失效了。小红书在这块一直在升级,失效周期越来越短。 RedBookC是把整个浏览器环境原封不动地保留下来,完全模拟真人用浏览器操作。 这个项目做了什么 RedBookC是一个小红书AI全自动运营Agent,开源免费,核心逻辑: 每10分钟自动从AI科技媒体、GitHub Trending、Hacker News抓取最新资讯 调用Claude AI生成符合小红书风格的短文案(正文不超过20字+话题标签) 用Playwright控制真实Chrome浏览器,打开小红书创作者后台,完整走一遍人工发帖的流程 全程无人值守,自动入队、自动发布、自动记录结果 开源地址:https://github.com/brettinhere/redbookc 怎么规避小红书的检测 这是这个项目最核心的部分,RedBookC用了7种方法模拟真人行为。 第一,用真实浏览器,不碰任何接口 所有操作都在Chrome浏览器里完成,走的是正常的HTTPS网页请求,和你自己坐在电脑前操作没有任何区别,小红书看到的是一个真实的浏览器在访问创作者后台。 第二,每个账号独立的Chrome Profile 每个小红书账号对应一个独立的Chrome Profile目录,里面保存的是真实登录后的Cookie、浏览器历史、本地存储等完整数据。对小红书来说,这就是同一个人一直在用同一台电脑登录,行为连续且正常。 第三,随机化发帖间隔,不走固定节奏 很多自动化工具被封的原因之一,是发帖间隔过于规律。比如每3小时整点发一次,这种机械节奏一旦被统计模型识别,就会触发风控。 RedBookC对每个账号设置最小间隔和最大间隔(默认3~8小时),每次发完帖之后随机取这个范围内的一个值作为下次发帖的时间。没有规律,和真人的不固定作息一致。 第四,严格控制发帖时间段 真人不会在凌晨3点发小红书。RedBookC只在8:00到22:00之间安排发帖,凌晨时段自动跳过。这个时间窗口可以在代码里自定义。 第五,每次操作之间加入随机延迟 从点击「上传图文」,到上传图片,到填写正文,到点击发布,每一步之间都有2~6秒的随机等待时间。不会出现「0.1秒内完成所有操作」这种机器行为。 第六,注入反自动化检测脚本 Playwright默认会在`navigator.webdriver`属性上留下痕迹,很多网站用这个判断是否是自动化工具。我们在浏览器启动时注入了以下脚本: ```javascript Object.defineProperty(navigator, 'webdriver', { get: () => undefined }); Object.defineProperty(navigator, 'plugins', { get: () => [1,2,3,4,5] }); window.chrome = { runtime: {} }; ``` 这样浏览器的特征和普通用户使用Chrome是一致的。 第七,内容安全过滤,不发敏感内容 账号被封还有一个常见原因是内容本身触发了平台审查。RedBookC在发布前会对AI生成的内容做关键词过滤,屏蔽投诉、骗局、维权、加密货币等高风险词汇,只发出经过安全检查的内容。 整体技术结构 项目分两个核心服务: 主服务(Codong + Go):处理用户登录、账号管理、发帖队列、信号引擎调度,监听8084端口。 发布服务(Node.js + Playwright):专门负责控制浏览器完成实际发帖,监听8085端口。主服务把发帖任务通过HTTP发给它,它拿到内容和图片路径,打开Chrome,走完整个发帖流程,返回结果。 数据库用SQLite,轻量,不需要额外部署数据库服务。 前端是一个纯HTML+JS的Web Dashboard,手机和电脑都能用,包含控制台、账号管理、发帖队列、手动发帖、信号引擎配置等功能。 代码用Codong语言写成。Codong是一门AI原生编程语言,语法简洁,比传统python等其他语言节省60%以上的Token成本,编译为Go运行,非常适合AI直接读懂和修改代码做二次开发。 怎么部署,服务器要求 - Linux系统(Ubuntu 20.04 / CentOS 8+均可) -内存2GB以上(Chrome比较吃内存) - Node.js v16+ - Go 1.21+ - Codong(执行`npm install -g codong`安装) - Claude API Key(在console.anthropic.com申请,用claude-haiku成本很低) 第一步:克隆项目 ```bash git clone https://github.com/brettinhere/redbookc cd redbookc ``` 第二步:配置环境变量 ```bash cp .env.example .env ``` 编辑`.env`,填入以下内容: ``` DASHBOARD_PORT=8084 CLAUDE_API_KEY=sk-ant-api03-你的key WEBHOOK_SECRET=随便填一个字符串 ``` 第三步:安装依赖 ```bash npm install npx playwright install chromium ``` 第四步:用VNC在服务器上登录小红书 这是整个部署里最关键的一步,也是我们方案和其他工具最不一样的地方。 不能把Cookie抠出来导入,必须直接在服务器上用真实浏览器登录。** 原因前面说了:小红书的登录态绑定了整个浏览器环境,Cookie离开原始环境就失效。所以我们要做的是:在服务器上开一个带图形界面的Chrome,用VNC远程连进去,亲手扫码登录,让Profile从一开始就生活在服务器本地,之后Playwright直接用这个Profile跑,环境从未改变。 安装VNC和图形环境: ```bash # Ubuntu apt install -y xfce4 xfce4-goodies tightvncserver #启动VNC(第一次会让你设置密码) vncserver :1 -geometry 1280x800 -depth 24 ``` **用VNC客户端连接服务器**(推荐RealVNC Viewer或TigerVNC): ``` 地址:你的服务器IP:5901 密码:你刚才设置的VNC密码 ``` 连进去之后,在图形界面里打开终端,启动Chrome: ```bash mkdir -p /你的路径/redbookc/profiles/account1 google-chrome --user-data-dir=/你的路径/redbookc/profiles/account1 \ --no-sandbox \ https://creator.xiaohongshu.com ``` 在VNC窗口里完成小红书扫码登录,确认进入创作者后台之后,直接关掉Chrome,退出VNC。 登录信息、Cookie、设备指纹全部已经保存在`profiles/account1/`目录里了。 在Web界面里添加账号(登录Dashboard后在「账号管理」里添加,填入Profile路径即可)。 第五步:编译启动 ```bash #用Codong编译 systemctl stop redbookc 2>/dev/null cd src timeout 28 /usr/local/bin/codong run main.cod & sleep 25 && kill %1 TMPDIR=$(ls -td /tmp/codong-run-* * head -1) go build -o ../redbookc_src $TMPDIR/ cd .. ``` 第六步:用systemd管理两个服务 主服务`/etc/systemd/system/redbookc.service`: ```ini [Unit] Description=RedBookC Main Service After=network.target [Service] Type=simple WorkingDirectory=/你的路径/redbookc/src ExecStart=/你的路径/redbookc/redbookc_src Restart=always EnvironmentFile=/你的路径/redbookc/src/.env [Install] WantedBy=multi-user.target ``` 发布服务`/etc/systemd/system/redbookc-poster.service`: ```ini [Unit] Description=RedBookC Poster Service After=network.target [Service] Type=simple WorkingDirectory=/你的路径/redbookc ExecStart=/usr/bin/node poster-server.js Restart=always [Install] WantedBy=multi-user.target ``` ```bash systemctl daemon-reload systemctl enable redbookc redbookc-poster systemctl start redbookc redbookc-poster ``` 跑起来之后怎么用 打开浏览器访问`http://你的服务器IP:8084`,注册账号登录进去。 第一步:进「账号管理」,确认你的小红书账号已经绑定,状态显示「已激活」。 第二步:进「信号引擎」,设置好每日发帖上限(建议2~3篇)和发帖间隔(建议最小3小时,最大8小时),点击「启动」。 第三步:等1分钟,引擎会生成第一条内容并加入队列,之后每10分钟生成一条,按设定的随机时间间隔自动发布。 第四步:在「发帖队列」里可以看到所有待发和已发的帖子,支持修改内容、更换图片、调整时间、手动删除。 第一条帖子发出去之后,去小红书创作者后台确认一下发布状态,整个链路就跑通了。 一些注意事项 -每个账号每天发2~5篇是比较安全的范围,不要贪多 - Cookie有有效期,大概1~3个月需要重新登录一次 - AI生成的内容需要符合小红书社区规范,不要发违规内容 -这个工具用于提高运营效率,不是用来批量刷数据的,请合理使用 开源,免费,欢迎共建 项目完全免费开源,MIT协议,可以自由使用、修改、二次开发。 目前项目还有很多可以改进的地方,如果你有兴趣参与: -更多平台支持(抖音、微博) -更智能的内容生成(支持自定义主题) -账号登录态自动检测和提醒 -更完善的数据统计看板 欢迎提Issue和PR。 GitHub:https://github.com/brettinhere/redbookc 如果觉得有用,点个Star,让更多人看到