Skip to content

izerui/fmp-fetch

Repository files navigation

网页自动化工具 (FMP-Fetch)

基于Playwright的网页自动化工具,用于自动点击"领取任务"按钮并循环执行。

应用界面截图

功能特性

  • 🌐 自动化浏览器控制: 使用Playwright启动Chrome浏览器供用户手动登录
  • 🎯 智能页面监控: 自动监控页面上的"领取任务"按钮
  • 🔄 循环自动化: 自动点击按钮并执行确认操作,支持无��循环
  • ⏱️ 自定义延迟: 支持设置随机延迟时间范围(500ms-2s)
  • 📊 实时监控: 提供运行时间跟踪和实时日志记录
  • 🖥️ 友好界面: 基于tkinter的图形用户界面
  • 📦 跨平台: 支持Windows、macOS和Linux

工作原理

  1. 启动浏览器: 点击"启动浏览器"按钮打开Chrome浏览器
  2. 自动安装: 如果Chrome未安装,应用会自动安装
  3. 手动登录: 用户在Chrome中手动登录并导航到目标页面
  4. 开始监控: 返回应用程序,点击"开始自动化"开始页面监控
  5. 自动执行: 应用程序会自动执行以下循环:
    • 查找包含"领取任务"文本的span标签
    • 点击该span标签
    • 查找class为el-button el-button--default el-button--small el-button--primary的button
    • 点击确认button
    • 随机等待500ms-2s后重复

安装要求

  • Python 3.8+
  • uv (推荐的包管理器)

快速开始

1. 克隆项目

git clone https://github.com/izerui/fmp-fetch.git
cd fmp-fetch

2. 一键设置(推荐)

# 自动安装依赖和浏览器
make setup-all

3. 手动安装

# 安装项目依赖
uv sync

# 安装Playwright浏览器(可选,应用会自动安装)
make install-playwright

4. 运行应用

# 使用uv运行
uv run python main.py

# 或使用make命令
make run

使用方法

基本使用流程

  1. 启动应用程序

    make run
  2. 启动浏览器

    • 点击应用中的"启动浏览器"按钮
    • 如果Chrome未安装,会自动安装(需要几分钟)
    • 等待Chrome浏览器窗口打开
  3. 手动登录

    • 在Chrome中导航到目标网站
    • 完成登录流程
    • 导航到需要自动化的页面
  4. 配置延迟

    • 在应用程序中设置最小和最大延迟时间
    • 点击"应用设置"保存配置
  5. 开始自动化

    • 点击"开始自动化"按钮
    • 应用程序开始监控页面并自动执行操作
  6. 监控运行

    • 查看实时日志了解运行状态
    • 可以最小化窗口,不影响自动化运行
    • 需要停止时点击"停止自动化"

高级功能

  • 延迟设置: 可自定义最小和最大延迟时间,系统会在此范围内随机选择
  • 实时日志: 所有操作都会记录在日志区域,方便调试和监控
  • 运行时间: 实时显示自动化运行时间
  • 安全停止: 可随时停止自动化,不会影响页面状态

构建打包

使用Make命令

# 安装构建依赖并打包(自动检测平台)
make build

# Mac专用打包
make build-mac

# Windows专用打包
make build-win

使用构建脚本

# 运行构建脚本
./build.sh

手动构建

# 安装构建依赖
uv sync --extra build

# 使用PyInstaller打包
uv run pyinstaller --clean fmp-fetch.spec

可用命令

项目提供了便捷的Make命令:

  • make help - 显示所有可用命令
  • make setup - 初始化开发环境
  • make install - 安装项目依赖
  • make run - 运行GUI程序
  • make test - 运行测试
  • make format - 格式化代码
  • make lint - 代码检查
  • make clean - 清理缓存文件
  • make build - 打包应用程序

项目结构

fmp-fetch/
├── main.py                 # 主程序入口
├── src/                    # 源代码目录
│   ├── automation_manager.py  # 自动化管理器
│   ├── gui.py             # GUI界面
│   ├── logger.py          # 日志记录器
│   └── runtime_tracker.py # 运行时间跟踪
├── pyproject.toml         # 项目配置
├── Makefile              # Make命令配置
├── build.sh              # 构建脚本
├── fmp-fetch.spec        # Mac/Linux构建配置
├── FMP-Fetch.exe.spec    # Windows构建配置
└── README.md             # 项目说明

技术栈

  • GUI框架: tkinter (Python标准库)
  • 自动化引擎: Playwright
  • 包管理: uv
  • 构建工具: PyInstaller
  • 异步处理: asyncio

注意事项

使用建议

  1. 首次使用: 建议先测试几次手动操作,确保了解页面结构
  2. 延迟设置: 建议设置适当的延迟时间,避免请求过于频繁
  3. 监控日志: 定期查看日志,确保自动化正常运行
  4. 安全考虑: 请确保遵守目标网站的使用条款

故障排除

  1. 浏览器启动失败

    • 应用会自动安装Chrome,如失败可手动安装: uv run playwright install chromium
    • 检查网络连接和系统权限设置
    • 确保有足够的磁盘空间(Chrome约100MB)
  2. 找不到页面元素

    • 检查目标页面是否已完全加载
    • 确认页面元素的class名称是否正确
  3. 应用程序无响应

    • 重启应用程序
    • 检查系统资源使用情况

开发

开发环境设置

# 设置开发环境
make setup

# 运行开发模式
make dev

代码格式化

# 格式化代码
make format

# 代码检查
make lint

许可证

MIT License

作者

liuyuhua (liuyuhua69@gmail.com)

版本历史

  • v0.2.1 - 切换到Chrome浏览器,添加自动安装功能
  • v0.2.0 - 重新设计基于Playwright的自动化架构
  • v0.1.0 - 初始版本(基于API请求)

About

财务凭证自动领取

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors