在线学习网站刷课时的几种方式
(编辑:jimmy 日期: 2024/12/29 浏览:3 次 )
一. 查看上报学习时间的逻辑
2. 播放开始,完毕、暂停、退出后自动上报 后端有校验,会根据开始时间和结束时间做对比,结束时间不能小于开始时间+视频时长
3.定时上报,1分钟上报一次本人有幸这三种都遇到过。二. 应对方法
这里一般会分为好几种情况1.播放完毕、暂停、退出后自动上报 后端无校验
2. 播放开始,完毕、暂停、退出后自动上报 后端有校验,会根据开始时间和结束时间做对比,结束时间不能小于开始时间+视频时长
3.定时上报,1分钟上报一次本人有幸这三种都遇到过。二. 应对方法
- 情况一:
在20年初,公司有网络安全学习需要我们学,不能拖动进度条,需要看看完,就是用的第一种,直接burp抓包,改包,三分钟完事。
- 情况二:
就是前几天帮我老父亲刷课时的,本来一看,没有定时上报,应该直接改包就可以,先从1,改到100,保存成功,改成200,也保存成功。
但是,就是在 最大时间值(比如视频时长 20 分钟),我传20 * 60 * 1000, 会报错,提示不能拖动进度条,各种review前端代码,发现没什么问题,在20分钟后,上报成功,学习完成。
这种方式需要写代码了,- 获取课程列表的接口,找出未学习的课程
- 调用开始学习的接口,然后设置定时器,定时器的时间就是课程时长 + 2分钟
- 重复步骤1,2
- 情况三:
方式三最为麻烦,需要定时上报,我也是通过写代码的方式,这里推荐两个Node.js库,playwright 和 Puppeteer。
- 通过代码模拟打开浏览器
- 打开浏览器后进入课程学习
- 获取dom元素,判断哪个元素还没学习
- 进入学习,这里有一个复杂点,判断学习完成的结束,我上一个就是使用的腾讯的sdk,找方法找了半天,感觉过于复杂,于是就选择了10分钟刷新一次页面,如果学习完毕后,返回的html是不一样的。
- 这个都做成定时上报了,所以肯定有失效过去的方式,大概2小时左右过期一次,于是我对程序的设定就是1小时40分钟重新执行 1,2,3,4
我也看过有人获取视频时长,然后通过定时器轮询,1分钟上报一次,这个和情况二的代码基本一致,无非就是把循环逻辑改一下,如果获取视频学习时间和信息等方式过于麻烦,其实也可以通过上述这种模拟操作的方式来做,更简单粗暴,且可以应对所有情况。
下一篇:[原创]WPS会员直充【官方充值接口】