Skip to content

jiangfengz/feishu-sidebar-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

小红书数据采集插件

一个基于飞书多维表格的边栏插件,用于采集小红书平台的内容数据并自动填充到表格中。

功能特性

  • 🔍 关键词搜索:根据关键词搜索小红书笔记
  • 📊 自动填充:将采集的数据自动写入飞书多维表格
  • 🔄 实时写入:支持采集过程中实时写入新数据
  • 🎯 进度监控:实时显示采集进度和状态
  • 🧹 数据清理:一键清空表格数据
  • 🔐 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 install

开发模式

npm run dev

访问 http://localhost:3000 查看应用

构建生产版本

npm run build

预览构建结果

npm run preview

配置说明

飞书多维表格配置

插件在初始化和写入时会自动检查并创建以下两个文本字段(若不存在):

  • 关键词:本次采集使用的搜索关键词
  • 笔记链接:小红书笔记的 URL

当前版本仅写入「关键词」和「笔记链接」两个字段。如需采集标题、作者、点赞数等更多信息,可参考下方「开发指南 → 添加新的数据字段」自行扩展。

API配置

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)。

使用说明

1. 准备工作

  1. 在飞书开放平台创建应用
  2. 获取应用的 App ID 和 App Secret
  3. 配置应用权限,确保有多维表格的读写权限

2. 安装插件

  1. 将构建后的 dist 目录部署到服务器
  2. 在飞书开放平台配置插件的URL地址
  3. 在飞书工作台中添加插件

3. 使用插件

  1. 打开飞书多维表格
  2. 在边栏中找到并打开插件
  3. 输入以下信息:
    • AIZNT API密钥
    • 搜索关键词
    • 小红书用户Cookie
    • 需要采集的笔记数量(1-100)
  4. 点击"开始采集"按钮
  5. 等待采集完成,数据将自动填充到表格中

API接口

数据采集服务

主要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>;
}

开发指南

添加新的数据字段

  1. src/table-service.tsensureRequiredFields() 中,按「关键词」「笔记链接」的写法新增字段的检查/创建逻辑
  2. src/collection-service.ts 中采集对应的数据
  3. src/table-service.tswriteNotes() 中,将新字段写入 addRecordfields

自定义采集逻辑

修改 src/collection-service.ts 中的 collectNotes 方法,调整:

  • 搜索策略
  • 数据过滤规则
  • 分页采集逻辑

扩展API支持

src/xiaohongshu-api.ts 中添加新的API接口:

export class XiaohongshuAPI {
  // 添加新的API方法
  async getNewData(params: any): Promise<any> {
    // 实现新的API调用逻辑
  }
}

常见问题

Q: 采集过程中出现网络错误怎么办?

A: 采集任务创建后,插件会每隔 20 秒轮询一次任务状态、最长等待约 30 分钟。如果请求失败或长时间无结果,请检查网络连接、AIZNT API 密钥与小红书 Cookie 是否有效。

Q: 数据没有正确写入表格?

A: 请检查飞书应用的权限配置,确保有多维表格的写入权限。

Q: 如何提高采集效率?

A: 可以在 src/config.ts 中调整请求超时时间(API.TIMEOUT),或优化网络代理配置;单次采集数量可在插件界面按需设置(1-100)。

Q: 支持批量采集吗?

A: 是的,插件支持批量采集,可以通过设置笔记数量参数控制采集规模。

许可证

本项目仅供学习和内部使用,请遵守相关平台的使用条款和法律法规。

更新日志

v1.0.0 (2024-01-01)

  • 初始版本发布
  • 支持关键词搜索和数据采集
  • 集成飞书多维表格自动填充
  • 添加进度监控和错误处理

技术支持

如有问题或建议,请联系开发团队。

About

飞书多维表格边栏插件:输入关键词与小红书 Cookie,调用 AIZNT API 采集小红书笔记并自动写入多维表格,支持实时写入、单次任务去重、进度监控与一键清空。React 18 + TypeScript + Vite。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors