Skip to content

Latest commit

 

History

History
79 lines (52 loc) · 2.37 KB

README.md

File metadata and controls

79 lines (52 loc) · 2.37 KB

易校园自动打卡脚本

概述

这是一个易校园自动打卡脚本,结合云服务器的定时任务功能,可以实现每天自动打卡。

技术实现

  1. 通过 HTTPS 抓取易校园的打卡接口名称和数据,获取必要的参数(个人信息和登录凭证)。
  2. 使用 Python 脚本构造实体数据,发送 HTTP 请求。
  3. 集成邮箱的 SMTP 功能,发送邮件通知打卡结果。
  4. 利用服务器的 shell 脚本创建定时任务,实现每天自动打卡。

使用说明

环境配置

  1. 安装 Python 3.x

  2. 安装依赖包:

    pip3 install requests yagmail
    

    注意:yagmail 包可能需要使用 pip3 安装,详见相关 issues。

  3. 配置环境变量或创建 config.py 文件,包含以下信息:

    • 邮箱配置(SMTP 服务器,用户名,授权码)
    • 易校园账号信息(用户 ID,学校代码等)
  4. 运行脚本:

    python app.py
    

    如果显示 detail 详情和打卡成功的回调,则表示配置正确。

打卡功能实现

注意:这部分需要进行 HTTPS 抓包,可以使用 Whistle 或 Charles,记得安装 CA 证书。

打卡过程包含两个主要步骤:

  1. 调用 getDetail 接口获取个人打卡信息
  2. 调用 doDetail 接口发送 POST 请求完成打卡

getDetail 接口

此接口返回个人信息,包括学校代码、姓名、手机号等。详细的数据格式请参考代码中的注释。

doDetail 接口

使用从 getDetail 获取的数据,构造请求体并发送到此接口完成打卡。

打卡成功的返回格式如下:

{
  "statusCode": 0,
  "message": "操作成功",
  "data": {}
}

邮件通知

脚本使用 SMTP 协议发送打卡结果通知邮件。请在配置文件中正确设置邮箱信息。

自动化配置

使用云服务器的定时任务功能实现每日自动打卡。以下是宝塔面板的配置示例:

定时任务配置

其他自动化方案请自行搜索相关资料。

注意事项

  • 请遵守学校规定,不要滥用本脚本。
  • 定期检查脚本运行状况,确保打卡正常进行。
  • 重要的个人信息请使用环境变量或配置文件存储,不要直接硬编码在脚本中。
  • 如遇到问题,请检查网络连接、账号信息是否正确,并查看日志输出。