前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >脚本刷课思路-2

脚本刷课思路-2

作者头像
Elapse
发布2020-08-17 14:57:48
2.5K0
发布2020-08-17 14:57:48
举报
文章被收录于专栏:E条咸鱼E条咸鱼

类似前言的PI话

上一篇是基础篇,内容是关于爬虫的时候注意的动态页面和静态页面的区别,其实也没啥实质性的内容,这一篇才是刷课的一个思路

现在论坛或者其他地方肯定都有分享浏览器刷课的脚本,但是这类脚本通常都是需要你开着浏览器,然后脚本自动给你调1.5倍速、静音、自动切换下一个视频这样,我个人而言,不是很喜欢这类的脚本,我更偏向于,运行一下,所有的视频就全都看完了,所以实际的思路上,和那类脚本是完全不一样的

我这种脚本的做法,是直接告诉服务器,我看了这个视频,你给我记上,所以我是没有“看”这个步骤的

正文

最最最最最重要的前提就是,你要刷课的网站,没有WAF,也就是网站防火墙,如果有的话,他会把你发送的请求当成黑客攻击给拦截掉的,至于WAF做啥我就不解释了

首先,按流程来,我们得先需要解决登录的问题,前一篇说的,你需要登录,才有“权限”来获取对应你的课程,登录窗口一般很好找,在开始前,我们先按 F12打开开发者工具,准备查看登录过程中,调用了哪些接口

一般来说,为了方便查看、管理,接口的名字直接翻译就能知道是啥了,所以在上图中,可以看到一个 loginSystem

点进去后发现,发送的Http数据包中,包含了自己的用户名密码

所以你只需要请求

这个Url,然后通过post的方式传入那三个参数,就可以完成登录了,当然绕过验证码这篇不讲,我前面有一篇小记了一个方法,Google百度一查也有一大堆例子的

在成功登录后,我们就可以直接打开课程链接

实际上,我为了图方便,课程ID这部分的内容,我一般是不会通过首页来获取的,而是直接当成一个固定值写进程序里面的,一来比较省事,二来要是网站更新了,我还可以直接进行修改,唯一的缺点就是,他只能刷这一门课了,但是这个缺点我还挺喜欢的(笑)

从上面的url可以看到,用Get型传入了两个参数,为courseOpenId和OpenClassId,我们把这两个值先记录下来

这种网课的资源,肯定都是需要一级一级获取下去,换成人话就是

需要先获取章节的id,然后再获取章节中小节的id,然后在通过小节的id获取某个章节中的小节中的视频、ppt的资源

举一个获取小节id的操作,我先刷新一下页面,获取所有的章节id

可以看到,网页调用了一个接口,我们点击 Preview查看返回的数据是否是我们想要的

发现name和页面中章节的名字对应上了,说明这确实是章节的id,所以接下来我们需要关注的就是,他往这个接口发送了什么数据,回到headers,往下拖就可以看到, FromData

是不是很熟悉,这就是课程链接中带的两个参数,也就是说,我们用这两个参数,请求这个接口后,就会返回所有的章节id回来了

接着我随意点开一个章节

这时 Network中发现网站调用了一个接口

往下继续看,看post发送了什么数据

courseOpenId,我们在url中已经看到了,这个是课程的id,而下面的那个moduleId,则是这个章节的id,而章节的id我们在上面获取了,所以这样一步一步的推导下去,就可以获取到最后的资源id了

用文字说就是,看接口,看返回的内容是不是需要的,接口没错的话,看他是传入了什么参数才返回的内容

当你获取到了最后一步的视频的id后,这个时候考虑的就是,这个网站是怎么知道你学习了,我目前遇到的有两种

  1. 你只需要访问了一下这个资源,他就默认你看完了
  2. 你需要通过接口发送数据,"告诉"服务器你看完了

我们随意打开一个视频,发现这个网站,每10秒就发送一个数据,记录当前的视频位置

所以最后获取了所有的id后,直接拿这个接口疯狂发送数据,告诉他你看完了就好了,至于时长,自己把握,别刷了上百个小时

PS:昨天发现服务器上的一个服务有点问题,凌晨2点钟了还没睡,所有写这篇的时候,可能稍微逻辑有点不清,要是有不理解的可以后台留个言啥的

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 E条咸鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 类似前言的PI话
  • 正文
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档