小红书工具开源说明

前言

大家好,我是 aki66938。之前我维护过一个基于 Python + Selenium/Playwright 的小红书自动化工具,之前应该也有佬友看过我的帖子。但在维护过程中,我个人的感受是单纯依赖浏览器自动化的局限性:资源占用高、并发能力弱、容易被反爬策略针对。部署起来也存在各种便利性的问题。随着 AIGC 的兴起,我发现旧项目已经存在很容易被AI替代的可能,所以前一个项目算是废止了。后来在公司开发项目的过程中,收获了一些从浏览器逆向api接口请求逻辑实现本地后端的技能,灵感这就来了,本着学习和实践的目的,于是才有了当前这个项目,使用 Rust 重构核心网络层,构造全新的api路由去请求小红书官方的api endpoint,结合Antigravity实现纯AI vibe coding,完成小红书主页绝大部分接口的开发工作,目前包含对前端内容包括用户信息、搜索接口、文章接口、图文详情以及视频和图片的捕获、采集,觉得基本满足大部分采集需求后,赘述本帖以誓开源,项目名称 XHS_RS_TOOLS。

项目地址

🛠️ 架构设计

这是一个 Rust 主导 + Python 辅助 的混合架构:

  • Server (Rust): 处理所有高并发 HTTP 请求、API 路由、数据清洗、媒体下载。
  • Signer (Python): 借助了开源项目 xhshow 实现agent代理完成本地算法签名,伴随着rust一起启动,同时,还存在一个playwright进程,用于获取访客用户的cookie,以实现对qrcode的请求,最终实现用户扫码登录

⚡️ 快速开始

如果你有 Rust 环境:

 git clone https://github.com/aki66938/XHS_RS_TOOLS.git 
 cd XHS_RS_TOOLS 

启动服务

docker compose up -d #用于启动mongodb数据库,存储登录用户的cookie数据
cargo run 

服务启动后,API文档地址是

http://localhost:3000/swagger-ui 

项目根目录的 client_demo.py 为全接口的测试用例,运行需要进入script目录进行 pip install -r requirements.txt 安装依赖环境

特点

除了官方接口获取了文章详细内容 /api/note/detail,额外实现了对该接口 response 内容的简单解析,获取视频、图片文件的链接及下载接口,包含无水印图片文件

需要特别注意的是,如果需要采集大量内容,注意分页策略,github的自述文件中描述了分页策略的规则指南

feature

项目还会持续更新,目前针对主站的接口开发工作告一段落,后续将重点针对创作者中心尝试接口开发。另外python安装playwright的过程也是一番折腾,由于仅用到了获取访客的cookie这一个动作。后续考虑将playwright使用容器部署的方式。

👋 结语

项目完全开源 (MIT),目前已经迭代到 v1.7.0 版本,功能基本稳定。欢迎佬友关注评论交流,技术细节可全公开。

GitHub: GitHub - aki66938/XHS_RS_TOOLS: xhs_toolkit for rust

以技术探索为名,行守法合规之事。

标签: none

评论已关闭