雨课堂刷课

查看 94|回复 9
作者:quals   
1. 思路分析爬虫入门小白,最近尝试了一下用爬虫来进行雨课堂的刷课,废话不多说,现在开始。首先,随便点开一个视频开始学习

打开chrome的debugger,简单分析后发现会周期性的发送heartbeat请求,payload如下:

放到本地json文件里看一下:

发现里面有个heart_data数组,并且其中的cp会每次加5,除cp外还有个成员d,把这两个成员和视频的当前时间以及总时间对比,发现刚好是当前视频的秒数以及总的秒数,猜测一个心跳包表示观看了5秒。写个小的python程序验证下猜想:

发送19次,每次让cp值加30,因为每个heartbeat请求有6个heart_data,每个5秒,总共30秒。运行一下,刷新一下雨课堂网页,发现该视频已经学习完成。

到此基本已经搞定,只剩下一些边边角角。分析一下heart_data里面剩余的成员。直接说一下分析的结果。

出了图片里标记出来的,其他都是固定值,剩下的就是找出来所有的视频编号以及视频总时间。回到雨课堂课程首页刷新一下,找到相关请求中的json数据。


但是这里面并没有视频的总时间。再次点击需要观看的视频,找到请求。

其中教室id是固定的。

找到视频时长。现在所有信息均已拿到。简单编程即可。最后结果。

全部视频学习成功。回到雨课堂课程首页。

所有课程已完成。思路分析部分到此结束,下面是代码。

2. 代码
2.1 获取所有视频的id、时长、名字
在课程首页找到获取学习内容的请求,使用copy object选项,拷贝整个json对象。


image.png (120.35 KB, 下载次数: 0)
下载附件
2021-9-14 22:45 上传

拷贝到本地IDE中,格式化一下。


image.png (170.25 KB, 下载次数: 0)
下载附件
2021-9-14 22:46 上传

将整个爬虫程序

视频, 课堂

unixcs   

代码能分享下吗
扫地僧666   


15021581556 发表于 2021-10-27 23:26
请问你这个脚本怎么弄的 能介绍给我试试吗,我微信号15021581556请联系我 谢谢大哥

和很简单,操作和油猴差不多,不过脚本没用油猴市场里面的,那个脚本做题1题一分钱,很好用,成绩稳步提升,正确率100%
zhang3244330   

厉害,不知道国家开放开学的能不能搞
ll090822   

谢谢  贡献不错
quals
OP
  


unixcs 发表于 2021-9-14 16:33
代码能分享下吗

晚上贴一下,不过这个代码通用性不强,很多数据是一次性的,比如说所有视频的id,这个是在课程首页通过一次请求得到的,所以是直接从浏览器里拷贝下来的。也没有做登陆
defau1t   

学到了,我去分析分析
junjie9986   

非常感谢,贡献很大!
yyb414   

还可以,学到了一手
扫地僧666   

哈哈哈哈,我一直用的是一个收费的脚本,挺不错的,答题正确率接近100%,刷新就出来答案了
您需要登录后才可以回帖 登录 | 立即注册