这是一个用于“聚工在线教育平台”的Python脚本,可以自动登录、获取课程列表、选择指定课程,并模拟播放未完成的视频(支持人脸识别验证)。下面是详细的使用步骤和说明。
1. 准备工作
1.1 安装Python环境
确保你的电脑上安装了 Python 3.6 或更高版本。
在命令行(CMD或PowerShell)中输入以下命令检查版本:
python --version
如果未安装,请访问 python.org 下载并安装。
1.2 安装依赖库
脚本依赖 requests 库,使用以下命令安装:
pip install requests
1.3 准备人脸图片(可选)
如果课程启用了人脸识别验证,你需要准备几张清晰的人脸照片放在一个文件夹内。脚本会在需要时随机选择一张图片进行上传和比对。
-
创建一个文件夹,例如
D:\Backup\Desktop\新建文件夹(脚本中默认配置此路径,你可以修改为实际路径)。 -
往里面放入几张正面、光线充足的人脸照片(支持
.jpg,.jpeg,.png,.bmp,.gif)。 -
照片中的人脸应与账号注册时的人脸相似,以提高验证成功率。
注意:如果课程没有启用“人脸识别”,则不需要准备图片,脚本会自动跳过验证步骤。
2. 配置脚本
下载或复制提供的脚本代码,保存为一个 .py 文件,例如 jugong_player.py。
修改人脸图片目录(可选)
用文本编辑器打开脚本,找到以下一行(通常在 main 函数内):
face_dir = r"D:\Backup\Desktop\新建文件夹" # ← 请改为你的实际路径
将其改为你存放人脸图片的实际路径,例如:
face_dir = r"C:\Users\YourName\Pictures\face_images"
如果不需要人脸验证,可以保持原样(目录不存在时脚本会提示并跳过)。
其他自定义(可选)
-
播放速度:在
simulate_video_playback方法中,有一行time.sleep(5),这是每次上报进度后的等待时间(秒)。你可以根据需要调整,例如改为time.sleep(60)使播放更接近真实观看。 -
进度上报间隔:
interval = 60表示每60秒上报一次进度,也可以修改。
3. 运行脚本
在命令行中进入脚本所在目录,执行:
python jugong_player.py
3.1 登录
脚本启动后,会提示你输入账号和密码:
=== 聚工在线教育平台自动播放器 === 支持以下登录方式: 1. 手机号登录 (11位数字,1开头) 2. 身份证号登录 (18位) 请输入手机号或身份证号: 请输入密码:
-
账号支持手机号(11位数字,以1开头)或身份证号(18位,最后一位可能是数字或X)。
-
密码为明文密码,脚本会自动进行MD5加盐加密后提交。
登录成功后,会显示Cookie信息,并开始获取课程列表。
3.2 选择课程
脚本获取到课程列表后,会按序号列出所有课程:
📚 你的课程列表: 1. 低压电工作业(初训) (ID: 1702315722) 2. 高处作业(复审) (ID: 1702315723) ...
然后提示你输入要播放的课程:
请输入要播放的课程序号或课程名称(输入序号或完整名称):
你可以输入序号(如 1)或完整的课程名称(如 低压电工作业(初训))。如果输入名称,必须与平台上显示的完全一致(包括空格和特殊符号)。
选择后,脚本会加载该课程的目录结构,并开始自动播放。
3.3 自动播放过程
-
脚本会提取课程中所有视频,并统计已完成和未完成的数量。
-
只播放未完成的视频,已完成的自动跳过。
-
对于每个视频,会进行以下步骤:
-
检查可播放性:向服务器确认视频可以播放。
-
获取视频详情:获取视频时长、已播放进度、是否需要人脸验证等信息。
-
人脸验证(如果需要):
-
如果是首次播放且启用了人脸验证,脚本会随机选择一张图片进行上传和比对。
-
验证成功后方可继续。
-
-
模拟播放:从已播放位置开始,每60秒上报一次进度,直到视频结束。
-
播放完成:标记视频为已完成。
-
播放过程中会打印详细的日志,包括进度、响应数据等。
3.4 播放完成
当所有未完成视频处理完毕后,脚本会显示统计结果:
🎉 自动播放完成! 统计结果: ✅ 成功播放: 10 个视频 ❌ 播放失败: 0 个视频 📊 总计处理: 10 个未完成视频
4. 注意事项
4.1 账号安全
-
脚本只在本地运行,不会上传你的密码(仅用于计算MD5后提交)。但请确保从可信来源获取脚本。
-
建议使用小号或测试账号进行尝试,避免因自动化操作导致账号被限制。
4.2 人脸图片要求
-
如果课程强制人脸验证,图片质量直接影响验证成功率。请使用清晰、正面、光线充足的人脸照片。
-
多准备几张图片可提高随机通过的概率(有些平台会检测图片重复)。
4.3 网络与Cookie
-
脚本使用
requests.Session自动管理Cookie,登录后所有请求都会携带有效的Cookie。 -
如果遇到“未登录”错误,可能是Cookie过期或登录态失效,可重新运行脚本。
4.4 播放间隔
-
脚本默认每次上报后等待5秒,这会使播放速度极快。如果你希望更接近真实观看,请将
time.sleep(5)改为较大的值(如60秒)。 -
修改位置:
simulate_video_playback方法中。
4.5 错误处理
-
脚本对常见的网络异常、JSON解析错误做了捕获并打印提示,但不会自动重试。如果中途失败,可以重新运行。
-
如果视频时长获取失败,会使用默认值1800秒(30分钟)。
4.6 合规性提醒
请遵守平台的使用条款,不要过度频繁请求或用于作弊。本脚本仅用于学习和技术交流,请勿滥用。
5. 常见问题
Q: 登录时提示“输入格式错误”
A: 请检查你输入的手机号是否为11位且以1开头,或身份证号是否为18位(最后一位允许X/x)。如果不属于这两种格式,脚本无法判断登录方式。
Q: 获取课程列表失败,提示“未登录”或返回空数据
A: 可能原因:
-
登录Cookie已失效,重新运行脚本登录。
-
平台接口有更新,需要调整代码。
-
账号没有购买任何课程。
Q: 人脸验证一直失败
A: 尝试:
-
更换更清晰的人脸图片。
-
检查图片路径是否正确,目录下是否有图片文件。
-
可能是平台的人脸比对算法要求较高,可尝试多张不同角度的照片。
Q: 视频播放进度上报后,平台显示未完成
A: 可能原因:
-
上报的
played_time未达到视频总时长。 -
上报参数有误,需要检查
video_duration是否正确。 -
平台有防刷机制,需要更真实的播放间隔。可以调整
interval和等待时间。
6. 自定义修改建议
-
播放指定课程:脚本已实现交互式选择,无需修改代码。
-
只播放特定章节:可以在
extract_all_videos提取视频列表后,根据视频名称或路径过滤,只播放符合条件的视频。 -
调整上报间隔:修改
simulate_video_playback中的interval变量。 -
修改默认视频时长:当无法获取视频时长时,脚本使用1800秒。可以修改
play_single_video中的video_duration = 1800。
如果运行中遇到其他问题,可以查看命令行输出的错误信息,或根据平台接口变化适当调整代码。祝使用顺利!





暂无评论内容