# console_project **Repository Path**: ywwxxx/console_project ## Basic Information - **Project Name**: console_project - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-22 - **Last Updated**: 2026-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 控制台命令执行器 这是一个基于 PySide6 的图形界面应用程序,可以让您在 GUI 界面中执行控制台命令并实时查看执行过程。 ## 功能特点 - 🖥️ **专业爬虫界面** - 专门为爬虫程序设计的现代化 GUI - ⚙️ **参数设置区域** - 突出的参数配置界面,支持启动前设置 - ⚡ **实时输出显示** - 爬虫执行过程的实时输出监控 - 🛑 **安全停止控制** - 支持中途安全停止爬虫执行 - 📱 **分离错误显示** - 标准输出和错误输出分别显示 - 💾 **智能参数记忆** - 自动保存参数,支持历史记录和自动补全 - 🎨 **美观状态指示** - 实时显示爬虫运行状态 - ☕ **内置 JRE 支持** - 可集成 Java 运行环境,完全独立运行 - 📦 **一键打包** - 将爬虫程序和 JRE 一起打包到 exe 中 - 🔍 **智能环境检测** - 自动检查 Java 环境或使用内置 JRE - 🗄️ **数据持久化** - 用户数据独立存储,程序重装不丢失 - 📋 **日志记录** - 完整的执行日志,支持问题追踪和历史查看 - 🎨 **专业图标** - 精美的蜘蛛主题图标,提升视觉体验 ## 环境要求 - Python 3.8+ - [uv](https://docs.astral.sh/uv/) (推荐的 Python 包管理器) ## 安装 uv 如果您还没有安装 uv,请先安装: ```bash # macOS和Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # 或者使用pip pip install uv ``` ## 项目设置和运行 1. **创建虚拟环境并安装依赖**: ```bash uv sync ``` 2. **运行程序**: ```bash uv run python main.py ``` ## JAR 文件集成 ### 准备爬虫程序 1. **重命名文件**: 将您的爬虫 jar 文件重命名为 `crawler.jar` 2. **放置文件**: 将 `crawler.jar` 复制到`jars/`目录中 3. **Java 环境**: 确保目标系统安装了 Java 运行环境 ### 爬虫程序要求 - ✅ **固定文件名**: 必须命名为 `crawler.jar` - ✅ **可执行 jar**: 支持 `java -jar crawler.jar` 执行 - ✅ **参数支持**: 支持命令行参数传递 - ✅ **自动检测**: 程序自动检测并显示状态 ### 内置 JRE 要求 - 🚨 **必须包含**: 打包时必须包含内置 JRE,不能依赖系统 Java - ✅ **完全独立**: 程序运行不依赖目标系统的 Java 环境 - 📦 **自动打包**: JRE 会被自动包含到最终 exe 中 ## 打包成 exe 文件 本项目支持将应用和 JAR 文件一起打包成独立的 Windows 可执行文件。 ### 准备工作 1. **安装打包依赖**: ```bash uv sync # 这会自动安装包括PyInstaller在内的所有依赖 ``` 2. **准备内置 JRE** (必需): ```bash # 下载并解压JRE到jre目录 # 确保存在 jre/bin/java.exe 文件 ``` 3. **准备爬虫程序** (必需): ```bash # 将爬虫文件重命名并放入jars目录 cp your-crawler.jar jars/crawler.jar ``` ### 自动打包 使用提供的自动化打包脚本: ```bash uv run python build.py ``` 这个脚本会: - 🧹 清理之前的构建文件 - 📦 使用 PyInstaller 打包应用 - 📁 创建便携版发布包 - ✅ 生成最终的 exe 文件 ### 手动打包 如果需要自定义打包参数: ```bash # 使用配置文件打包 uv run pyinstaller build.spec --clean # 或者使用命令行参数 uv run pyinstaller main.py --onefile --windowed --name "控制台命令执行器" ``` ### 打包输出 打包完成后会生成: - `dist/` - 包含可执行文件 - `release/` - 便携版发布包(包含 exe 和使用说明) ### 数据持久化特性 - 📍 **用户数据位置**: `~/.crawler_executor/parameters.db` - 🔄 **程序重装无影响**: 重新下载程序不会丢失用户设置 - 🚀 **完全独立**: 不依赖程序安装位置,可任意移动 exe 文件 - 💾 **自动备份**: 参数和历史记录安全保存在用户目录中 - 🌐 **跨版本兼容**: 升级程序版本时保留所有用户数据 - 📋 **执行日志**: 完整的运行记录,重装程序不丢失 - 🔍 **问题排查**: 详细的日志记录便于问题定位 - 🎨 **精美图标**: 专业的蜘蛛主题图标,重装程序不影响 ### 日志记录特性 - 📋 **执行日志**: 每次运行都生成独立的日志文件 - 🗄️ **日志位置**: `~/.crawler_executor/logs/` (打包后) 或 `项目/logs/` (开发时) - 📝 **完整记录**: 包含启动参数、执行输出、错误信息、时间戳等 - 🔄 **自动清理**: 保留最新 50 个日志文件,自动删除过期日志 - 🎯 **问题追踪**: 便于技术支持人员诊断问题 - 📱 **便捷访问**: 通过程序内"查看日志"和"日志目录"按钮管理 ### 视觉设计特性 - 🎨 **专业图标设计** - 蜘蛛主题的现代化图标 - 📏 **多尺寸适配** - 16x16 到 512x512 全尺寸覆盖 - 🖼️ **格式完整** - 支持 PNG、ICO 等多种格式 - 💻 **系统集成** - 窗口图标和 exe 文件图标统一 - 🌈 **色彩协调** - 与程序界面风格保持一致 ### 图标与界面 程序已包含专业设计的图标系统: - **窗口图标** - 运行时自动设置,提升视觉识别度 - **exe 文件图标** - 打包后的可执行文件使用精美图标 - **多尺寸支持** - 从 16x16 到 512x512 全覆盖,适配各种显示需求 - **主题一致** - 蜘蛛主题图标与程序功能完美契合 ### 打包配置 可以通过编辑 `build.spec` 文件来自定义打包参数: - 图标文件已自动配置 - 包含额外的数据文件 - 调整压缩选项 - 设置版本信息 ## 开发相关命令 ```bash # 添加新依赖 uv add 包名 # 添加开发依赖 uv add --dev 包名 # 更新依赖 uv sync --upgrade # 运行代码格式化 uv run black main.py uv run isort main.py # 代码检查 uv run flake8 main.py # 打包应用 uv run python build.py ``` ## 🌐 协议测试服务器 ### HTTP协议测试模式 由于浏览器安全限制,`file://` 协议无法调用自定义协议。本项目提供HTTP服务器模式进行协议测试: **启动测试服务器:** ```bash # 方法1:Python启动 python protocol_test_server.py # 方法2:批处理启动 启动协议测试服务器.bat ``` **自动功能:** - ✅ 启动HTTP服务器 (默认端口8888) - ✅ 自动创建协议测试页面 - ✅ 自动打开浏览器访问测试页面 - ✅ 支持协议调用: `crawlerexecutor://execute` **访问地址:** `http://localhost:8888/协议测试.html` ### 协议调用格式 ``` crawlerexecutor://execute?args=参数&auto_start=true/false&source=来源 ``` **参数说明:** - `args`: 爬虫程序启动参数 (需URL编码) - `auto_start`: 是否自动启动 (true/false) - `source`: 调用来源标识 (可选) **示例:** ``` crawlerexecutor://execute?args=-url%20https://example.com&auto_start=false ``` ## 使用说明 ### 爬虫程序执行 1. **准备爬虫文件**: 将爬虫 jar 文件重命名为 `crawler.jar` 并放在`jars/`目录中 2. **状态检查**: 程序启动时会自动检测 crawler.jar 并显示状态 3. **设置参数**: 在参数输入框中输入爬虫程序需要的参数(支持自动补全) 4. **参数记忆**: 程序会自动保存参数,下次启动时自动加载 5. **历史记录**: 点击"历史"按钮查看和选择之前使用过的参数 6. **启动爬虫**: 点击 "🚀 启动爬虫" 按钮开始执行 7. **查看输出**: 爬虫的输出会显示在主输出区域,以`[爬虫]`标识 8. **停止爬虫**: 点击 "🛑 停止爬虫" 按钮来终止爬虫程序 9. **状态显示**: 实时显示爬虫运行状态(就绪/运行中/完成) 10. **日志管理**: 点击"查看日志"查看执行历史,点击"日志目录"打开日志文件夹 ## 安全提示 ⚠️ **注意**: 此工具可以执行任何控制台命令,请谨慎使用,避免执行可能损害系统的命令。 ## 技术特性 - 使用 PySide6 构建现代化 GUI - 多线程执行命令,避免界面冻结 - 实时流式输出显示 - 跨平台兼容(Windows、Linux、macOS) - 优雅的错误处理和用户反馈 ## 系统要求 ### 开发环境 - Python 3.8+ - PySide6 6.5.0+ (通过 uv 自动管理) - uv 包管理器 - 支持的操作系统:Windows、Linux、macOS ### 最终用户(打包后) - Windows 7 或更高版本 - 无需安装 Python、Java 或任何依赖 - 约 100-150MB 磁盘空间(包含 JRE 和爬虫程序) - 用户数据存储在 `~/.crawler_executor/` 目录中 - 精美的程序图标,提升使用体验 ## 🔧 调试工具 项目提供了完整的调试工具集: ### 批处理调试工具 ```bash # 协议调用调试工具(Windows) 协议调用调试工具.bat ``` ### HTTP协议测试 ```bash # 启动协议测试服务器 python protocol_test_server.py ``` ### 主要功能 - ✅ 协议注册状态检查 - ✅ 程序文件完整性验证 - ✅ 多种协议调用测试 - ✅ HTTP服务器模式(避免file://限制) - ✅ 实时调试信息输出