被导师安排代看他的网课,受不了傻乎乎地机械刷课,稍微研究了一下发现很简单:该网站看视频时,是间隔50s向服务端发送一个POST请求,服务器再返回相应的进度。
登陆后点开一个视频,F12-NETWORK,播放视频一分钟后会出现一个POST请求,该请求内可获得cookie和该视频的orgId、sourceId、segId、itemId、courseId、videoId,再去脚本中修改以上值。
①orgId和sourceId是永久不变的,一次获取后一直可用
②segId、itemId、courseId是随着不同课程变化的,同一个课程内所有视频都是相同的
③videoId是每个视频都不一样
④orgId、sourceId、segId、itemId、courseId、videoId还有其他方便的获取方式,自己探索吧!
⑤我之前想把不同视频的segId、itemId、courseId、videoId分别都做成列表,然后在脚本中做一个for循环依次列举,这样就可以全自动刷完全部视频了。但是,实际操作后发现,当前后列举的是不同课程的2节课时,前一节课正常刷完后再刷第二节课开始时会报错,提示‘正在上其他课’,这时候需要自己手动到网页上点进第二节课所在课程,其中随便哪节都可以,然后再启动脚本就可以了。上面这样就很鸡肋。我因为没有需求所以没有继续深化,比较费时间,上面报错的原因,在打开任何一个视频后,在第50s发送post请求前还有另一个不同的请求,这剩下的就自己研究吧!
⑥关于视频结束的答题,当刚开始打开视频然后F12后,你会发现竟然有问题的题干和答案!程序员不骗程序员!好样的!