标签 Selenium/Playwright 下的文章


前言

大家好,我是 aki66938。

之前我维护过一个基于 Python + Selenium/Playwright 的小红书自动化工具
小红书工具开源说明1

之前应该也有佬友看过我的帖子。但在维护过程中,我个人的感受是单纯依赖浏览器自动化的局限性:资源占用高、并发能力弱、容易被反爬策略针对。部署起来也存在各种便利性的问题。

随着 AIGC 的兴起,我发现旧项目已经存在很容易被 AI 替代的可能,所以前一个项目算是废止了。
后来在公司开发项目的过程中,收获了一些从浏览器逆向 api 接口请求逻辑实现本地后端的技能,灵感这就来了,本着学习和实践的目的,于是才有了当前这个项目,使用 Rust 重构核心网络层,构造全新的 api 路由去请求小红书官方的 api endpoint,结合 Antigravity 实现纯 AI vibe coding,完成小红书主页绝大部分接口的开发工作,目前包含对前端内容包括用户信息、搜索接口、文章接口、图文详情以及视频和图片的捕获、采集,觉得基本满足大部分采集需求后,赘述本帖以誓开源,项目名称 XHS_RS_TOOLS

项目地址

小红书工具开源说明2
小红书工具开源说明3小红书工具开源说明4

架构设计

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

  • Server (Rust): 处理所有高并发 HTTP 请求、API 路由、数据清洗、媒体下载。
  • Signer (Python): 借助了开源项目小红书工具开源说明5 实现 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 requestment.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


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


📌 转载信息
原作者:
krik
转载时间:
2026/1/21 22:38:45