一个基于 Electron + Vue 3 + TypeScript 的微信公众号文章爬虫工具,现在 main 分支是 GUI 图形化界面操作, cli 分支是命令行和终端交互式,cli 分支代码初期没写好,后期不想维护,所以重新改了一版 GUI 版本的,后续维护 main 分支代码,不再维护 cli 分支代码。
- 🚀 微信公众号文章批量爬取
- 📊 数据统计和可视化
- 🏷️ 公众号标签管理
- ⏰ 定时任务调度
- 🎨 深色/浅色主题切换
- 💾 本地 SQLite 数据库存储
- 前端: Vue 3 + TypeScript + Element Plus
- 桌面端: Electron
- 数据库: SQLite + Prisma ORM
- 爬虫: Playwright
- 构建工具: Electron-Vite
git clone https://github.com/xiaofeiwuuu/wechat-spider.git
cd wechat-spider# 使用 npm
npm install
# 或使用 pnpm (推荐)
pnpm install数据库会在首次运行时自动创建:
注意: 需要系统安装 sqlite3 命令行工具:
- macOS:
brew install sqlite3(通常已预装) - Linux:
apt-get install sqlite3或yum install sqlite - Windows: 从 SQLite 官网 下载
复制 .env.example 为 .env (如果有),或确保 .env 文件包含必要配置:
# 数据库配置
DATABASE_URL="file:./data/wechat.db"
# 应用配置
VITE_APP_TITLE="TINYWUYOU"pnpm dev项目使用 Prisma + SQLite:
- Schema 文件:
prisma/schema.prisma- 数据库表结构定义 - 初始化脚本:
prisma/init.sql- 数据库创建脚本 - 数据库位置: 应用用户数据目录下的
data/wechat.db
User- 登录用户信息Account- 公众号账号列表Tag- 标签管理AccountTag- 公众号-标签关联Article- 爬取的文章Config- 系统配置SchedulerLog- 定时任务执行记录
- VSCode
- 插件:
- ESLint
- Prettier
- Volar
- Prisma
WeChat-spider-UI/
├── src/
│ ├── main/ # Electron 主进程
│ │ ├── index.ts # 主进程入口
│ │ └── ipc/ # IPC 通信
│ ├── preload/ # 预加载脚本
│ └── renderer/ # 渲染进程 (Vue)
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ ├── stores/ # Pinia 状态管理
│ │ └── api/ # API 接口
│ └── index.html
├── prisma/
│ ├── schema.prisma # 数据库 Schema
│ └── init.sql # 数据库初始化脚本
├── scripts/
│ └── init-db.js # 数据库初始化脚本
├── .env # 环境变量
└── package.json
MIT