在线学习网站刷课时的几种方式

查看 226|回复 14
作者:coolliyong   
一. 查看上报学习时间的逻辑这里一般会分为好几种情况1.播放完毕、暂停、退出后自动上报 后端无校验
2. 播放开始,完毕、暂停、退出后自动上报 后端有校验,会根据开始时间和结束时间做对比,结束时间不能小于开始时间+视频时长
3.定时上报,1分钟上报一次本人有幸这三种都遇到过。
二. 应对方法
  • 情况一:
    在20年初,公司有网络安全学习需要我们学,不能拖动进度条,需要看看完,就是用的第一种,直接burp抓包,改包,三分钟完事。
  • 情况二:就是前几天帮我老父亲刷课时的,本来一看,没有定时上报,应该直接改包就可以,先从1,改到100,保存成功,改成200,也保存成功。
    但是,就是在 最大时间值(比如视频时长 20 分钟),我传20 * 60 * 1000, 会报错,提示不能拖动进度条,各种review前端代码,发现没什么问题,在20分钟后,上报成功,学习完成。
    这种方式需要写代码了,

  • 获取课程列表的接口,找出未学习的课程
  • 调用开始学习的接口,然后设置定时器,定时器的时间就是课程时长 + 2分钟
  • 重复步骤1,2
    这里有些情况可能会登录失效,所以,根据需要刷课时的时间来看,一般几个小时的课程,cookie 啥的不会过期
  • 情况三:方式三最为麻烦,需要定时上报,我也是通过写代码的方式,这里推荐两个Node.js库,playwright 和 Puppeteer。
  • 通过代码模拟打开浏览器
  • 打开浏览器后进入课程学习
  • 获取dom元素,判断哪个元素还没学习
  • 进入学习,这里有一个复杂点,判断学习完成的结束,我上一个就是使用的腾讯的sdk,找方法找了半天,感觉过于复杂,于是就选择了10分钟刷新一次页面,如果学习完毕后,返回的html是不一样的。
  • 这个都做成定时上报了,所以肯定有失效过去的方式,大概2小时左右过期一次,于是我对程序的设定就是1小时40分钟重新执行 1,2,3,4
    我也看过有人获取视频时长,然后通过定时器轮询,1分钟上报一次,这个和情况二的代码基本一致,无非就是把循环逻辑改一下,如果获取视频学习时间和信息等方式过于麻烦,其实也可以通过上述这种模拟操作的方式来做,更简单粗暴,且可以应对所有情况。
    项目代码的话就没有开源出来,有的代码里写了cookie,方式三的代码写了用户名和密码在里面。 如果有需要参考和学习的话可以留言,到时候处理一下再发也可以

    方式, 代码

  • lsy832   

    学习视频要是好看也用不着刷        全是电子包浆
    yanguichao   


    十一大魔王i 发表于 2022-11-23 14:58
    同样遇到这种类型的,弹验证,弹题,自动结束播放,本想着抓包直接改,结果似乎有验证,本地和云端的数据 ...

    曾经被判作弊的路过。
    当时啊学习时长刷到70多了,但是在线时长只有几个小时,所以被管理员判定作弊了。然后把那个在线时长也刷了。
    现在各种学习网站都是越来越难刷啊,技术人员总是不断改进中。最后弄得一节课不管大小需要抓10多次包,修改数据10多次,最后弄的我都懒得刷了。老老实实挂。
    Deeryxlx   

    学习一下,网课学习看得太绝望了,都是些没有用的内容翻来覆去的讲
    jy443396   

    虽然看不懂 点个赞吧!!!!!!
    xfairs   

    厉害,向你学习!!!!!!
    bearkr   

    我觉得模拟发包是首选,其次是油猴脚本模拟操作,最低端就是按键精灵了!
    这是我做学习助手的经验。虽然我是从按键精灵起步的,但是后来看到抓包分析,用PHP模拟发包,遇到无法解决的加密参数,就先用油猴脚本解决。模拟发包可以做到批量,油猴脚本基本就是本人自助使用。
    kaixuan1158   

    为啥要这样呢,不是要认真学习嘛
    duguanhua   

    厉害,向你学习!!!!!!
    langtaosha   

    太有用了,就是小白操作起来还是挺麻烦的!
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部