4.1 KiB
4.1 KiB
公告抓取与分析工具
一个用于管理公告抓取任务、查看抓取结果、查询项目数据并维护系统配置的工具。
当前项目结构已经升级为:
- 前端:Vue 3 + JavaScript + Vite + Vue Router + Axios + Element Plus
- 后端:Node.js + Express
- 数据存储:better-sqlite3
- 调度:node-cron
- 邮件:nodemailer
功能概览
- 任务管理:新增、编辑、启用、禁用、删除任务
- 手动执行:支持单任务运行和批量运行
- 结果查看:按城市、板块、类型筛选抓取结果
- 项目查询:按项目名称、金额、日期范围过滤项目
- 系统设置:维护 Agent、定时任务、邮件配置
- 定时调度:支持 cron 表达式配置
- 数据持久化:任务与结果保存在 SQLite
环境要求
- Node.js 20 及以上可运行当前项目
- 建议使用 Node.js 22
说明:
- 当前依赖
@mendable/firecrawl-js会提示要求 Node>=22 - 目前在 Node
20.19.4下可以安装、构建和启动 - 如果后续采集运行时出现环境兼容问题,优先升级到 Node 22
安装依赖
npm install
配置文件
项目根目录下使用 config.json 作为运行配置文件。
如果你还没有该文件,可以参考:
cp config.example.json config.json
需要重点配置的内容包括:
agent.baseUrlscheduler.enabledscheduler.cronTimeemail.smtpHostemail.smtpUseremail.smtpPassemail.recipients
启动方式
开发模式
前后端同时启动:
npm run dev
启动后地址如下:
- 前端开发服务:
http://localhost:5173 - 后端 API 服务:
http://localhost:5000
说明:
- Vite 前端会通过代理把
/api请求转发到5000 - 开发时建议直接访问
http://localhost:5173
生产模式
先构建前端,再启动 Express:
npm run build
npm start
启动后访问:
http://localhost:5000
说明:
npm run build会把前端构建到dist/npm start会由 Express 托管dist/静态资源和/api
常用脚本
npm run dev
npm run build
npm run preview
npm start
脚本说明:
npm run dev:开发模式,前后端同时启动npm run build:构建前端生产包npm run preview:本地预览前端构建结果npm start:启动后端服务,并托管前端构建产物
页面说明
任务配置
- 管理抓取任务
- 支持单独运行和批量运行
- 支持查看运行状态
抓取结果
- 查看每次抓取生成的记录
- 支持按条件筛选
- 支持删除结果
项目管理
- 对抓取出的项目做去重查询
- 支持金额和日期范围过滤
系统设置
- 配置 Agent 服务地址
- 配置定时任务
- 配置邮件发送参数
技术栈
- 前端:Vue 3、Vite、Vue Router、Axios、Element Plus
- 后端:Express
- 数据库:better-sqlite3
- 调度:node-cron
- 邮件:nodemailer
项目结构
.
├─ client/ # Vue 3 前端源码
│ ├─ index.html
│ └─ src/
│ ├─ api/
│ ├─ components/
│ ├─ pages/
│ ├─ router/
│ ├─ App.vue
│ ├─ main.js
│ └─ styles.css
├─ dist/ # Vite 构建产物
├─ src/ # Express 服务端
│ ├─ server.js
│ ├─ scheduler.js
│ ├─ resultStore.js
│ ├─ agentService.js
│ └─ emailService.js
├─ data/ # SQLite 数据文件目录
├─ config.json # 运行配置
├─ config.example.json # 配置示例
├─ package.json
├─ vite.config.js
└─ README.md
数据说明
- 任务数据和抓取结果保存在 SQLite
- 默认数据库路径位于
data/results.sqlite - 配置数据保存在根目录
config.json
部署建议
- 使用 PM2 或 systemd 保持进程常驻
- 通过反向代理暴露
5000端口 - 不要把
config.json、data/、.env提交到公开仓库
备注
- 旧版
public/页面已不再作为当前主前端入口 - 当前主前端以
client/目录为准