Skip to content

AG521521/bhut_wqqd-master

Repository files navigation

# 大学考勤系统自动签到脚本 (University Auto Sign-in)

[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)

这是一个用于**大学考勤系统**的自动化晚寝签到 Python 脚本。它通过模拟微信客户端的 API 请求,帮助用户自动完成每日的晚寝签到流程。

该脚本具有强大的灵活性,支持:
- **测试模式**:批量探测可成功登录的学号。
- **多种签到模式**:全员签到、仅成功学号签到,以及从成功学号中**随机抽取签到**- **数据统计与报表**:自动生成签到排行榜、趋势图等可视化数据,并可通过邮件发送报告。

---

## ✨ 项目特性

*   **全自动流程**:完整模拟从获取Token、查询任务到最终提交签到的所有步骤。
*   **强大的容错性**:内置多层重试机制,能有效应对Token失效、网络波动等偶发性错误。
*   **异步高并发**:使用 `asyncio``aiohttp` 实现高性能并发签到,百人签到仅需十余秒。
*   **灵活的用户选择***   **全员模式**:对指定学号段内的所有账号进行签到。
    *   **智能模式**:仅签到经过**测试模式**验证的成功学号。
    *   **随机模式**:从成功学号池中**随机抽取**指定数量进行签到,降低规律性操作风险。
*   **可视化与通知***   自动生成签到成功率、排行榜、趋势图、热力图等数据。
    *   支持将包含详细报表的**邮件报告**发送到指定邮箱。
*   **高仿真模拟**:随机轮换 User-Agent、请求间添加随机延时、签到位置随机偏移,模仿真人操作,降低被系统检测的风险。
*   **配置集中化**:所有核心配置均在脚本顶部的配置区,修改方便。

## 🚀 如何自行部署和使用

### 1. 环境准备

- 确保你已安装 Python 3.8 或更高版本。
- 克隆或下载本仓库到你的本地设备。

### 2. 安装依赖

本项目仅依赖 `aiohttp` 库。你可以通过 `pip` 进行安装。

```bash
pip install aiohttp

3. 配置脚本

打开脚本文件,在 ## *------------------------------------------------------* ## 标记的配置区内完成你的个性化设置。

基础配置

  • 签到模式 (SIGN_MODE):选择 'all' (全员), 'success_only' (仅成功) 或 'random' (随机抽取)。
  • 学号范围 (SIGN_RANGE):当 SIGN_MODE'all' 时,指定签到学号的起止范围。
  • 并发限制 (MAX_CONCURRENT):控制同时进行的签到任务数,建议根据网络状况调整。
  • 重试次数 (MAX_RETRIES, MAX_TOKEN_RETRIES):设置失败重试的总次数和因Token失效而单独重试的次数。
  • 密码 (password):如果考勤系统密码为默认密码 Ahgydx@920,无需修改;若要指定密码,请在生成 User 对象时传入。

随机抽取配置 (RANDOM_SIGN_CONFIG)

  • enable:是否启用随机抽取(仅在 SIGN_MODE'random' 时生效)。
  • sample_size:随机抽取的人数。
  • random_seed:设置一个整数可固定每次的抽取结果(方便测试),设为 None 则每次结果不同。

邮箱提醒配置 (EMAIL_CONFIG)

  • enable:设置为 True 开启邮件报表功能。
  • sender_emailsender_password:填写你的发件邮箱地址和授权码(非登录密码)。
  • receiver_emailreceiver_emails:接收报告的邮箱地址。

测试模式配置 (TEST_MODE)

  • enable:设置为 True 会在运行 python main.py test 时跳过时间检查,方便随时测试。
  • test_range:指定进行批量探测的学号范围。
  • max_concurrent_test:测试时的并发请求数。

4. 运行脚本

脚本支持两种主要的运行模式。

4.1 先测试,后签到 (推荐)

首先,使用测试模式探测一批学号中哪些可以成功登录:

python main.py test

脚本会自动测试指定范围内的学号,将成功的学号保存在 success_students.json 文件中。

测试完成后,配置 SIGN_MODE'success_only''random',然后正常运行即可:

python main.py

4.2 直接全员签到

如果确定范围内的学号都有效,可以直接配置 SIGN_MODE'all' 并运行:

python main.py

5. 实现每日自动运行 (进阶)

为了实现全自动签到,可将脚本部署在服务器(如云服务器、树莓派等)上,并使用定时任务工具每日自动执行。

  • 对于 Linux/macOS:使用 crontab
  • 对于 Windows:使用“任务计划程序”。

一个简单的 crontab 设置示例(每晚 21:30 执行):

30 21 * * * /usr/bin/python3 /path/to/your/main.py >> /path/to/your/log.txt 2>&1

⚠️ 免责声明

  • 本项目仅供学习和技术交流使用,旨在减轻重复性劳动。
  • 请勿将其用于任何非法用途或商业活动。
  • 由于学校系统可能随时更新,本脚本的有效性不作永久保证。
  • 使用本项目即代表你同意承担所有可能由此产生的风险。开发者不承担任何因使用不当或系统更新导致的签到失败、账号异常等后果。

🤝 贡献与支持

  • 如果你发现了 Bug 或有任何改进建议,欢迎提交 Issues 或 Pull Requests。
  • 如果你觉得这个项目对你有帮助,不妨给它一个 ⭐ Star!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages