易网通自动刷课工具 —— 自动化完成EWT在线学习平台课程任务
EwtAutoStudyBot 是一款专为「易网通」(EWT)在线教育平台设计的自动化学习辅助工具。它能够模拟真实用户行为,自动完成课程视频观看,帮助用户高效管理在线学习进度。
项目主要解决以下痛点:
- 🎯 课程繁多:假期作业包含大量视频课程,手动逐一点击观看耗时费力
- 📊 批量管理:多账号场景下,逐个登录切换效率低下
| 功能模块 | 描述 |
|---|---|
| 👤 多账号支持 | 支持从 Excel 文件批量导入账号,并发执行刷课任务 |
| 🎬 自动刷课 | 自动播放课程视频,模拟真实观看行为,支持倍速播放 |
| 📊 智能进度上报 | 自动向服务器上报观看进度,标记课程完成状态 |
| 🗓️ 任务提前量配置 | 可设置提前完成天数,灵活规划学习进度 |
| 📚 学科过滤 | 支持按学科筛选课程,精准控制学习范围 |
| 🚀 多线程并发 | 多账号同时运行,大幅提升批量处理效率 |
| 📈 实时进度反馈 | 彩色控制台日志输出,清晰展示每个账号的课程完成进度 |
| 🔐 AES加密通信 | 使用 AES-CBC 加密敏感数据(如密码),保障账户安全 |
| 类别 | 技术 |
|---|---|
| 编程语言 | Python 3.8+ |
| 加密库 | pyaes (AES-CBC) |
| HTTP客户端 | requests |
| Excel处理 | openpyxl |
| 日志系统 | colorlog (彩色控制台输出) |
| 打包工具 | PyInstaller |
- Python 3.8+
- 推荐使用虚拟环境
# 1. 克隆项目
git clone https://github.com/yangsongh/EwtAutoStudyBot.git
cd EwtAutoStudyBot
# 2. 创建并激活虚拟环境 (推荐)
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# 或 .venv\Scripts\activate # Windows
# 3. 安装依赖
pip install -r requirements.txt在项目根目录创建 accounts.xlsx 文件,包含以下三列:
| 姓名 | EWT账号 | 密码 |
|---|---|---|
| 张三 | 13800138000 | 123456 |
| 李四 | 13800138001 | 654321 |
编辑 src/main.py 文件末尾的配置:
if __name__ == '__main__':
# 关闭多账号模式
multi_account = False
# 配置单个账号
username, account, password = ('张三', '13800138000', '123456')
Account(
username, account, password,
task_advance_day=30, # 提前完成天数
subject_filter=[], # 要过滤的学科ID列表
speed=2 # 播放速度倍率
).run_account()然后运行:
python src/main.py编辑 src/main.py 文件末尾的配置:
if __name__ == '__main__':
# 开启多账号模式
multi_account = True
excel_path = 'accounts.xlsx'
max_accounts = 1000 # 最大账号数
account_run_freq = 0 # 账号启动间隔(秒)
subject_filter = [] # 学科过滤
speed = 2 # 播放速度
task_advance_day = 30 # 提前完成天数运行程序:
python src/main.pyEwtAutoStudyBot/
├── src/ # 📂 源代码目录
│ ├── main.py # 🚀 程序入口:Account类与核心刷课逻辑
│ └── utils/ # 🛠️ 工具模块
│ └── utils_lib.py # 日志管理、配置管理、通用工具类
├── .vscode/ # VSCode开发配置
│ ├── launch.json # 调试配置
│ └── settings.json # 项目设置(含虚拟环境自动激活)
├── BUILD.BAT # 构建脚本(PyInstaller打包)
├── EwtAutoStudyBot.spec # PyInstaller打包配置
├── requirements.txt # 📦 Python依赖
└── LICENSE # MIT许可证
| 参数 | 类型 | 说明 |
|---|---|---|
multi_account |
bool | 是否启用多账号模式 |
excel_path |
str | 账号Excel文件路径 |
max_accounts |
int | 最大并发账号数量 |
account_run_freq |
int | 账号启动间隔(秒) |
subject_filter |
list | 需要跳过的学科ID列表 |
speed |
float | 视频播放速度倍率 |
task_advance_day |
int | 提前完成天数 |
| 参数 | 类型 | 说明 |
|---|---|---|
username |
str | 用户昵称(仅用于日志显示) |
account |
str | EWT登录账号(手机号) |
password |
str | EWT登录密码 |
task_advance_day |
int | 提前完成天数 |
subject_filter |
list | 学科ID过滤列表 |
speed |
float | 视频播放倍速 |
欢迎提交 Issue 和 Pull Request!
- 使用清晰的标题描述问题
- 提供完整的错误日志和运行环境信息
- 附上复现步骤(如适用)
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交代码 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 提交 Pull Request
- 遵循 PEP 8 代码风格
- 核心函数需包含类型注解 (Type Hints)
- 新增模块需添加 docstring
- 提交前确保代码可正常运行
本项目采用 MIT 许可证。详见 LICENSE 文件。
本工具仅供学习和研究使用,请勿用于违反平台服务条款的用途。使用本工具产生的任何后果由使用者自行承担。
如有问题或建议,请通过以下方式联系:
- 提交 GitHub Issue
- 邮件联系:18675864731@163.com