一个基于飞书多维表格的边栏插件,用于采集小红书平台的内容数据并自动填充到表格中。
- 🔍 关键词搜索:根据关键词搜索小红书笔记
- 📊 自动填充:将采集的数据自动写入飞书多维表格
- 🔄 实时写入:支持采集过程中实时写入新数据
- 🎯 进度监控:实时显示采集进度和状态
- 🧹 数据清理:一键清空表格数据
- 🔐 API集成:集成AIZNT API进行数据采集
- 前端框架:React 18 + TypeScript
- 构建工具:Vite 4.4
- UI组件库:Ant Design 5.x + Semi UI
- 飞书SDK:@lark-base-open/js-sdk
- HTTP客户端:Axios
- 开发服务器:Express + CORS
飞书边栏插件/
├── src/
│ ├── App.tsx # 主应用组件
│ ├── App.css # 样式文件
│ ├── index.tsx # 入口文件
│ ├── vite-env.d.ts # Vite类型定义
│ ├── collection-service.ts # 数据采集服务
│ ├── table-service.ts # 表格操作服务
│ ├── xiaohongshu-api.ts # 小红书API接口
│ └── config.ts # 配置文件
├── dist/ # 构建输出目录(由 npm run build 生成,不建议提交到 GitHub)
├── index.html # HTML模板
├── package.json # 项目配置
├── vite.config.ts # Vite配置
└── tsconfig.json # TypeScript配置
- Node.js 16+
- npm 或 yarn
npm installnpm run dev访问 http://localhost:3000 查看应用
npm run buildnpm run preview插件在初始化和写入时会自动检查并创建以下两个文本字段(若不存在):
- 关键词:本次采集使用的搜索关键词
- 笔记链接:小红书笔记的 URL
当前版本仅写入「关键词」和「笔记链接」两个字段。如需采集标题、作者、点赞数等更多信息,可参考下方「开发指南 → 添加新的数据字段」自行扩展。
在 src/config.ts 中可以配置相关API地址和参数:
export const CONFIG = {
API: {
BASE_URL: 'https://api.aiznt.com',
TIMEOUT: 30000
}
} as const;- 不要把个人 Cookie、API Key、Token 等写死在代码或提交到 GitHub。
- 本项目在运行时会将“小红书用户 Cookie”作为请求参数发送到 AIZNT API,请仅在你信任的环境/网络中使用,并妥善保管相关凭证。
- 建议在提交前确保已忽略 node_modules、dist、.env 等目录/文件(仓库已提供 .gitignore)。
- 在飞书开放平台创建应用
- 获取应用的 App ID 和 App Secret
- 配置应用权限,确保有多维表格的读写权限
- 将构建后的
dist目录部署到服务器 - 在飞书开放平台配置插件的URL地址
- 在飞书工作台中添加插件
- 打开飞书多维表格
- 在边栏中找到并打开插件
- 输入以下信息:
- AIZNT API密钥
- 搜索关键词
- 小红书用户Cookie
- 需要采集的笔记数量(1-100)
- 点击"开始采集"按钮
- 等待采集完成,数据将自动填充到表格中
主要API接口位于 src/collection-service.ts:
class CollectionService {
// 采集小红书笔记
async collectNotes(
keyword: string,
userCookies: string,
noteCount: number,
progressCallback?: (progress: number, message: string) => void,
newNotesCallback?: (newNoteUrls: string[]) => void
): Promise<string[]>;
}表格操作接口位于 src/table-service.ts:
class TableService {
// 初始化表格字段
async initializeTable(): Promise<void>;
// 写入笔记数据(支持单次任务去重)
async writeNotes(keyword: string, noteUrls: string[], sessionProcessedUrls?: Set<string>): Promise<{successCount: number, skipCount: number, processedUrls: Set<string>}>;
// 清空表格
async clearTable(): Promise<void>;
}- 在
src/table-service.ts的ensureRequiredFields()中,按「关键词」「笔记链接」的写法新增字段的检查/创建逻辑 - 在
src/collection-service.ts中采集对应的数据 - 在
src/table-service.ts的writeNotes()中,将新字段写入addRecord的fields
修改 src/collection-service.ts 中的 collectNotes 方法,调整:
- 搜索策略
- 数据过滤规则
- 分页采集逻辑
在 src/xiaohongshu-api.ts 中添加新的API接口:
export class XiaohongshuAPI {
// 添加新的API方法
async getNewData(params: any): Promise<any> {
// 实现新的API调用逻辑
}
}A: 采集任务创建后,插件会每隔 20 秒轮询一次任务状态、最长等待约 30 分钟。如果请求失败或长时间无结果,请检查网络连接、AIZNT API 密钥与小红书 Cookie 是否有效。
A: 请检查飞书应用的权限配置,确保有多维表格的写入权限。
A: 可以在 src/config.ts 中调整请求超时时间(API.TIMEOUT),或优化网络代理配置;单次采集数量可在插件界面按需设置(1-100)。
A: 是的,插件支持批量采集,可以通过设置笔记数量参数控制采集规模。
本项目仅供学习和内部使用,请遵守相关平台的使用条款和法律法规。
- 初始版本发布
- 支持关键词搜索和数据采集
- 集成飞书多维表格自动填充
- 添加进度监控和错误处理
如有问题或建议,请联系开发团队。