# 自动网站截屏 **Repository Path**: kk-999/automatic-website-screenshot ## Basic Information - **Project Name**: 自动网站截屏 - **Description**: 本软件是能够按照设定的时间自动打开指定的网站并进行全屏截图。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-20 - **Last Updated**: 2025-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自动网站截屏软件 自动网站截屏软件是一款基于Python开发的工具,能够按照设定的时间自动打开指定的网站并进行全屏截图。 ## 功能特点 1. **Excel配置**:从 `config.xlsx` 读取网站链接和定时任务 2. **自动浏览器操作**:使用Chrome浏览器自动打开网站 3. **全屏截图**:使用PyAutoGUI进行全屏捕获 4. **分层目录保存**:按照 `screenshots/日期/时间点/` 格式保存图片 5. **自定义文件名**:文件名格式为 `链接名称_时间点.jpg` 6. **水印功能**:支持添加自定义水印 7. **登录支持**:通过浏览器配置文件保存登录状态 8. **最大化窗口**:浏览器以最大化模式打开 9. **禁用自动化提示**:避免浏览器显示自动化控制提示 10. **日志记录**:详细的日志记录,便于故障排查 11. **系统托盘**:提供系统托盘图标和退出选项 12. **可打包成exe**:支持使用PyInstaller打包成独立的可执行文件 ## 安装与配置 ### 环境要求 - Python 3.8+ - Chrome浏览器 ### 安装步骤 1. 安装依赖包: ```bash pip install -r requirements.txt ``` 2. 配置Excel文件: - 修改 `config.xlsx` 文件,添加需要截图的网站信息 - 表格包含三列:`链接名称`、`URL`、`时间点` - 时间点格式:`HH:MM`,如09:00、14:30 3. 配置浏览器(首次使用): - 运行程序后,浏览器会自动打开 - 手动登录需要登录的网站 - 关闭浏览器,配置会自动保存 ## 使用说明 ### 启动程序 ```bash python main.py ``` ### 打包成可执行文件 ```bash # 基本打包 python setup.py build_exe # 打包前清理旧文件 python setup.py build_exe --clean ``` 打包完成后,可执行文件将位于 `dist` 目录下,文件名为 `AutomaticScreenshotTool.exe`。 ## 配置文件 ### config.json ```json { "page_load_wait_time": 10, "screenshot_dir": "screenshots", "filename_format": "{name}_{datetime}", "datetime_format": "%Y%m%d_%H%M%S", "chromedriver_path": "", "enable_watermark": false, "fullscreen_capture": true, "keep_browser_open": true, "use_incognito_mode": false, "screen_index": 0, "run_on_startup": true } ``` ### 配置项说明 | 配置项名称 | 类型 | 默认值 | 说明 | |-----------|------|-------|------| | `page_load_wait_time` | 整数 | 10 | 页面加载等待时间(秒),确保页面完全加载后再截图 | | `screenshot_dir` | 字符串 | "screenshots" | 截图保存根目录,截图将按日期和时间点组织存放 | | `filename_format` | 字符串 | "{name}_{datetime}" | 截图文件名格式,{name} 是网站名称,{datetime} 是当前时间 | | `datetime_format` | 字符串 | "%Y%m%d_%H%M%S" | 时间格式化字符串,用于生成文件名中的时间部分 | | `chromedriver_path` | 字符串 | "" | ChromeDriver路径,留空则使用Selenium自动管理 | | `enable_watermark` | 布尔值 | false | 是否添加水印,true表示添加,false表示不添加 | | `fullscreen_capture` | 布尔值 | true | 是否截取全屏,true表示截取电脑屏幕全屏,false表示截取浏览器窗口 | | `keep_browser_open` | 布尔值 | true | 是否保持浏览器窗口打开,true表示截图后不关闭浏览器,false表示关闭 | | `use_incognito_mode` | 布尔值 | false | 是否使用无痕模式,true表示使用无痕模式,false表示正常模式 | | `screen_index` | 整数 | 0 | 要截取的显示器索引,0表示主显示器,1表示第二个显示器,以此类推 | | `run_on_startup` | 布尔值 | true | 启动时是否立即执行截图任务,true表示立即执行,false表示只设置定时任务 | ### config.xlsx | 链接名称 | URL | 时间点 | |---------|--------------------|------------| | 示例网站1 | https://www.example.com | 09:00 | | 示例网站2 | https://www.google.com | 14:00 | ## 截图保存路径 截图将按照以下格式保存: ``` screenshots/YYYY-MM-DD/HH-MM/网站名称_时间戳.jpg ``` 例如: ``` screenshots/2025-12-19/09-00/示例网站1_20251219_090000.jpg ``` ## 日志系统 日志文件保存在 `logs` 目录下,文件名为 `screenshot_tool.log`,使用时间轮转方式管理: - 日志级别:INFO、WARNING、ERROR - 日志格式:包含时间、级别、消息 - 每日自动创建新的日志文件,保留最近30天 - 同时在控制台输出日志信息 ## 浏览器配置 - 程序使用Chrome浏览器进行截图 - 浏览器配置文件保存在 `chrome_user_data` 目录下,用于保存登录状态 - 浏览器以最大化模式打开 - 禁用了浏览器的自动化控制提示 ## 常见问题与解决方案 ### ChromeDriver初始化失败 **解决方案**: - 确保Chrome浏览器已安装 - 确保Chrome浏览器版本与ChromeDriver版本匹配 - 检查网络连接,确保能够下载ChromeDriver ### 网站无法正常加载 **解决方案**: - 检查网络连接 - 增加 `page_load_wait_time` 配置,延长页面加载等待时间 - 检查网站URL是否正确 ### 截图不完整 **解决方案**: - 确保浏览器以最大化模式打开 - 检查屏幕分辨率设置 - 调整 `page_load_wait_time` 配置,延长页面加载等待时间 ### 登录状态无法保存 **解决方案**: - 确保首次运行时手动登录了网站 - 检查 `chrome_user_data` 目录是否有写入权限 - 避免使用隐身模式 ### 程序无法退出 **解决方案**: - 通过系统托盘右键菜单退出 - 如果托盘图标无响应,可以通过任务管理器结束进程 ## 技术栈 - Python 3.8+ - Selenium WebDriver - PyAutoGUI - Pillow - openpyxl - schedule - pystray - logging ## 更新日志 ### v1.0.0(2025-12-19) - 初始版本发布 - 支持Excel配置 - 自动截图功能 - 水印功能 - 日志系统 - 登录支持 - 最大化窗口 - 禁用自动化提示 - 解决退出问题 - 支持打包成exe文件