在平时的工作生活中,我们总是会遇到一些需要网络课程的学习,最常见的就像驾校的网络课程学习,党员课程学习,工作技能网络学习等。如下图所示,这是公司内部的一个党员学习互动平台,该平台每个月都有一定的学习任务。

该平台学习方式有两种,视频学习与文档学习。而对于我们“懒惰”的程序员而言,这种耗时的操作总想省去,于是乎有了脚本秒刷课程的想法。下面分享下秒刷过程。

首先就是需要破解平台的登录。

通过fiddler抓取登录时的数据包,我们可以知道登录密码是经过加密的,因此第一步就是要知道加密方式,并通过python模拟该过程。

在浏览器中通过F12=>Sources=>Page底下发现一个js脚本,该脚本包含了加密方式。如下图所示:

通过该脚本,我们可以知道该加密方式为RSA加密,且可以得到RSA公钥中的n和e的值,同时,通过代码可以知道,该加密还有带上时间戳,因此可以在python下的模拟加密过程为:

破解了登录后,就可以能很容易的通过python登录成功。如下图所示:

在登录成功返回的数据中,我们可以得到一个AccessToken字段,该字段在后面的每个请求中都是必须带上的参数。

接着就是获取个人学习任务,该过程比较容易,只要通过抓包就能很轻易的模拟出来。获取个人学习任务后,需要过滤出未学习完成的月份任务。通过返回的json数据可以得到相应的月份。如下图所示,1为100%完成,0为还未开始学习,通过程序过滤出FinishPencent不为1的月份即可。

在每个月份的学习任务中还细分多个专题系列,每个专题系列里面还有不同章节,不同章节下有对应的视频或者文档。如下图:

通过对视频播放抓包可以得到下面信息,如图所示:

初步分析可以知道每个字段的含义和由来,其中videoId为视频ID,vs为视频播放进度,record为当前视频播放进度的一个记录信息,该字段由服务端返回;terminalType与version为固定的,无需深究;accessToken为登录时得到的字段。那么现在需要分析的是vs是如何组成的。

通过对比与研究网页源码发现,vs="v" + 视频id+ "u" + 课程id+ "i" + 播放的开始时间+ "c" + 播放的结束时间。其中播放的结束时间需要注意的是,原本的一个196秒视频,但是在这边为1969,多出来的一位是需要计算的,该计算方式为,视频id编号+课程id编号+视频时长,取该计算结果的最后一位,即177991+24902+196为9,那么结束时间就是1969。因此,我们只要模拟这个过程,向服务器发送每个视频的播放结束时间,服务器就会认为我们完成该视频的学习,便会把我们学习进度直接改为100%。

到此,视频的学习基本算搞定了,文档的学习流程基本与视频一致,这里不做详细介绍,下面分享整个脚本的代码。

欢迎关注我个人的公众号

基于python实现网络课程秒刷相关推荐

  1. python网络爬虫课程设计题目_山东建筑大学计算机网络课程设计《基于Python的网络爬虫设计》...

    山东建筑大学计算机网络课程设计<基于Python的网络爬虫设计> 山东建筑大学 课 程 设 计 成 果 报 告 题 目: 基于Python的网络爬虫设计 课 程: 计算机网络A 院 (部) ...

  2. python网络爬虫_python小知识,基于Python 的网络爬虫技术分析

    在现阶段大数据的时代中,想要实现对数据的获取和分析,要先具备足够的数据源,网络爬虫技术就为其数据获取提供了良好的条件,且还能够实现对数据源的目的性采集. 在网络爬虫技术应用中,Python 脚本语言的 ...

  3. 爬虫技术python流程图_基于Python的网络爬虫技术研究

    基于 Python 的网络爬虫技术研究 王碧瑶 [摘 要] 摘要:专用型的网络爬虫能够得到想要的返回结果 , 本文就以拉勾网作 为例子 , 对基于 Python 的网络爬虫技术进行研究和分析. [期刊 ...

  4. python网络爬虫的流程图_基于Python的网络爬虫的设计与实现

    龙源期刊网 http://www.qikan.com.cn 基于 Python 的网络爬虫的设计与实现 作者:高祖彦 来源:<商情> 2020 年第 33 期 [摘要]一个爬虫从网上爬取数 ...

  5. 【OpenCV图像处理入门学习教程六】基于Python的网络爬虫与OpenCV扩展库中的人脸识别算法比较

    OpenCV图像处理入门学习教程系列,上一篇第五篇:基于背景差分法的视频目标运动侦测 一.网络爬虫简介(Python3) 网络爬虫,大家应该不陌生了.接下来援引一些Jack-Cui在专栏<Pyt ...

  6. 开题报告———基于Python的网络爬虫的电影网站设计与实现

    摘要 当代万维⽹和互联⽹技术发展迅猛,有时候在浏览某些⽹页.相册或者某些图⽚⽹站时,发现很多图⽚都很喜欢想要下载到本地,但是数量较多时操作会过于繁琐.此爬⾍软件是为了使⽤户能够便捷的获取并下载某些⽹站 ...

  7. 基于python的网络爬虫编程_基于Python的网络爬虫程序设计

    程序设计 ●Program Design 基于 Python的网络爬虫程序设计 网络 信 息量 的迅 猛 增 长,对 如何从海量的信息中准确的搜索 到用户需要的信息提 出了极大的 挑战.网络爬 虫具有 ...

  8. 基于python的网络爬虫技术_基于python的网络爬虫技术的研究

    龙源期刊网 http://www.qikan.com.cn 基于 python 的网络爬虫技术的研究 作者:刘文辉 李丽

  9. python爬虫论文摘要怎么写_毕业论文-基于Python 的网络爬虫.docx

    北京林业大学本科毕业论文(设计) PAGE \* MERGEFORMATI 基于Python的网络爬虫 摘要 随着计算机技术的不断发展,新的编程语言层出不穷,Python,Html正是其中的佼佼者.相 ...

  10. 基于python的游戏设计与实现-基于Python的网络中国象棋游戏设计与实现

    基于Python的网络中国象棋游戏设计与实现 摘要中国象棋是一种家喻户晓的棋类游戏,随着互联网时代的到来,人们的娱乐方式也逐渐向PC端和移动端上发展.本文将传统的中国象棋游戏和当下的互联网技术结合作为 ...

最新文章

  1. UVA11624大火蔓延的迷宫
  2. 一个简单问题引发对IEnumerable和IQueryable的思考
  3. Altium_Designer-PCB的覆铜步骤
  4. php zend 自动补全,Zend Framework自动加载、简单路由配置(Bootstrap.php)
  5. dotnetcore-officeaddin-toolbox : Office 365 Add-in开发人员的工具箱
  6. leetcode116. 填充每个节点的下一个右侧节点指针
  7. Redis Cluster集群的搭建与实践[转]
  8. CodeForces round 753 problem B Odd Grasshopper(奇怪的蚱蜢)
  9. 计算机学情分析万能模板,信息技术的教学计划以及学情分析
  10. 学用 ASP.Net 之 System.Collections.Specialized.StringDictionary 类
  11. 2011年智能手机:Android继续闪耀或暗淡?
  12. win10的计算机策略组,Win10家庭版如何添加组策略功能?
  13. 现代医院智能化系统方案及其难点探讨
  14. TOGAF10标准读书会第2场活动精彩继续,高光时刻回顾!
  15. 查杀新rundl132.exe病毒的过程
  16. 基于单片机的危险气体泄露报警器设计
  17. 8090后苦于创业的我们
  18. 云计算背景下企业发展出现新变化
  19. 一文详解文本语义相似度的研究脉络和最新进展
  20. 有限元学习笔记-非线性问题建模与张量应用

热门文章

  1. 《Linux/UNIX系统编程手册(上、下册)》
  2. python调用百度查询关键字_Python模拟搜索百度关键字
  3. 搜索文件夹中word文档中的关键字
  4. ISO14443 PICC 与 PCD 调制解调方式
  5. 可行性研究报告——机房收费系统
  6. 易语言与python爬虫_022 Python爬虫原理与python爬虫实例大全
  7. 使用阿里云加速器 配置 Docker 镜像加速器
  8. fiddler 安装配置,连接手机,抓包QQ小程序
  9. 大华NVR接入海康摄像机的设置
  10. 2021年安全生产模拟考试(全国特种作业操作证电工作业-电力电缆模拟考试题库二)安考星