# 校园网自动登录工具 **Repository Path**: xiao-wang-oh/campus-network-auto-login-tool ## Basic Information - **Project Name**: 校园网自动登录工具 - **Description**: 这是一个基于Python和Selenium开发的校园网自动登录工具,可以自动检测网络状态,在断网时自动登录校园网认证系统。系统支持多种浏览器环境,具有断线重连、智能重试、系统通知等功能,适用于校园网环境下需要频繁认证的场景。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-02 - **Last Updated**: 2025-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 校园网自动登录助手 (Srun Auto Login) 一个基于Python的校园网自动登录工具,支持网络状态监控和自动重连功能,并提供Windows系统原生通知。 ## ✨ 功能特性 - 🔄 **自动网络监控**: 实时监控网络连接状态 - 🚀 **智能自动登录**: 网络断开时自动尝试重新登录 - 🔔 **系统通知**: 使用Windows原生通知系统,支持图标显示 - 🛡️ **无头浏览器**: 使用Edge WebDriver无头模式,后台静默运行 - 📝 **详细日志**: 完整的日志记录,便于问题排查 - ⚙️ **配置管理**: 支持JSON配置文件,方便管理登录信息 - 🔧 **本地WebDriver**: 支持本地WebDriver,无需网络下载 ## 📋 系统要求 - Windows 10/11 - Python 3.9+ - Microsoft Edge 浏览器 - uv 包管理器 ## 🚀 快速开始 ### 1. 克隆项目 ```bash git clone cd Srun_Autologin-main ``` ### 2. 安装依赖 使用 uv 安装项目依赖: ```bash uv sync ``` ### 3. 配置登录信息 编辑 `config.json` 文件,填入您的校园网登录信息: ```json { "url": "http://your-campus-network-login-url", "username": "your-username", "password": "your-password" } ``` ### 4. 准备WebDriver 将对应版本的 `msedgedriver.exe` 放置在 `drivers/` 目录下。 > 💡 **提示**: 请参考 `WebDriver_Manual_Download.md` 文件获取详细的WebDriver下载说明。 ### 5. 运行程序 ```bash # 使用uv运行 uv run python Srun_Autologin.py # 或者使用批处理文件 run.bat ``` ## 📁 项目结构 ``` Srun_Autologin-main/ ├── Srun_Autologin.py # 主程序文件 ├── config.json # 配置文件 ├── app.log # 日志文件 ├── run.bat # Windows批处理启动文件 ├── pyproject.toml # 项目配置文件 ├── uv.lock # 依赖锁定文件 ├── drivers/ # WebDriver目录 │ └── msedgedriver.exe # Edge WebDriver ├── ico/ # 图标文件目录 │ ├── Check.ico # 成功图标 │ ├── Cross.ico # 错误图标 │ ├── app.ico # 应用图标 │ └── ... └── README.md # 项目说明文档 ``` ## ⚙️ 配置说明 ### config.json 参数 | 参数 | 说明 | 示例 | |------|------|------| | `url` | 校园网登录页面URL | `"http://192.168.1.1:8080/login"` | | `username` | 登录用户名 | `"20210001"` | | `password` | 登录密码 | `"your_password"` | ## 🔔 通知系统 程序使用Windows原生通知系统,支持以下通知类型: - ✅ **网络已连接**: 显示绿色勾选图标 - ❌ **网络断开/登录失败**: 显示红色叉号图标 - 🔄 **正在重新登录**: 提示用户当前状态 ## 📝 日志系统 程序会在 `app.log` 文件中记录详细的运行日志,包括: - 网络状态检查结果 - 登录尝试和结果 - 错误信息和异常 - WebDriver状态检查 ## 🛠️ 故障排除 ### 常见问题 1. **WebDriver错误** - 确保Edge浏览器已安装 - 检查WebDriver版本是否与Edge浏览器版本匹配 - 参考 `WebDriver_Manual_Download.md` 重新下载WebDriver 2. **登录失败** - 检查 `config.json` 中的URL、用户名和密码是否正确 - 确认校园网登录页面的元素ID是否发生变化 - 查看 `app.log` 获取详细错误信息 3. **通知不显示** - 确保Windows通知权限已开启 - 检查Windows通知中心设置 - 确认 `ico/` 目录下的图标文件存在 ### 调试模式 如需调试,可以修改代码中的WebDriver选项,移除 `--headless` 参数以显示浏览器窗口。 ## 🔧 开发说明 ### 依赖库 主要依赖包括: - `selenium`: Web自动化 - `requests`: HTTP请求 - `windows-toasts`: Windows通知 - `winrt`: Windows Runtime API ### 代码结构 - `check_network_status()`: 网络状态检查 - `show_notification()`: 系统通知显示 - `login_to_website()`: 校园网登录逻辑 - `monitor_network_status()`: 主监控循环 ## 📄 许可证 本项目采用开源许可证,具体请查看项目根目录下的许可证文件。 ## 🤝 贡献 欢迎提交Issue和Pull Request来改进这个项目! ## 📞 支持 如果您在使用过程中遇到问题,请: 1. 查看 `app.log` 日志文件 2. 检查本README的故障排除部分 3. 提交Issue描述您的问题 --- **注意**: 请确保您有权限使用校园网络,并遵守相关网络使用政策。