基于python实现网络课程秒刷
在平时的工作生活中,我们总是会遇到一些需要网络课程的学习,最常见的就像驾校的网络课程学习,党员课程学习,工作技能网络学习等。如下图所示,这是公司内部的一个党员学习互动平台,该平台每个月都有一定的学习任务。
该平台学习方式有两种,视频学习与文档学习。而对于我们“懒惰”的程序员而言,这种耗时的操作总想省去,于是乎有了脚本秒刷课程的想法。下面分享下秒刷过程。
首先就是需要破解平台的登录。
通过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实现网络课程秒刷相关推荐
- python网络爬虫课程设计题目_山东建筑大学计算机网络课程设计《基于Python的网络爬虫设计》...
山东建筑大学计算机网络课程设计<基于Python的网络爬虫设计> 山东建筑大学 课 程 设 计 成 果 报 告 题 目: 基于Python的网络爬虫设计 课 程: 计算机网络A 院 (部) ...
- python网络爬虫_python小知识,基于Python 的网络爬虫技术分析
在现阶段大数据的时代中,想要实现对数据的获取和分析,要先具备足够的数据源,网络爬虫技术就为其数据获取提供了良好的条件,且还能够实现对数据源的目的性采集. 在网络爬虫技术应用中,Python 脚本语言的 ...
- 爬虫技术python流程图_基于Python的网络爬虫技术研究
基于 Python 的网络爬虫技术研究 王碧瑶 [摘 要] 摘要:专用型的网络爬虫能够得到想要的返回结果 , 本文就以拉勾网作 为例子 , 对基于 Python 的网络爬虫技术进行研究和分析. [期刊 ...
- python网络爬虫的流程图_基于Python的网络爬虫的设计与实现
龙源期刊网 http://www.qikan.com.cn 基于 Python 的网络爬虫的设计与实现 作者:高祖彦 来源:<商情> 2020 年第 33 期 [摘要]一个爬虫从网上爬取数 ...
- 【OpenCV图像处理入门学习教程六】基于Python的网络爬虫与OpenCV扩展库中的人脸识别算法比较
OpenCV图像处理入门学习教程系列,上一篇第五篇:基于背景差分法的视频目标运动侦测 一.网络爬虫简介(Python3) 网络爬虫,大家应该不陌生了.接下来援引一些Jack-Cui在专栏<Pyt ...
- 开题报告———基于Python的网络爬虫的电影网站设计与实现
摘要 当代万维⽹和互联⽹技术发展迅猛,有时候在浏览某些⽹页.相册或者某些图⽚⽹站时,发现很多图⽚都很喜欢想要下载到本地,但是数量较多时操作会过于繁琐.此爬⾍软件是为了使⽤户能够便捷的获取并下载某些⽹站 ...
- 基于python的网络爬虫编程_基于Python的网络爬虫程序设计
程序设计 ●Program Design 基于 Python的网络爬虫程序设计 网络 信 息量 的迅 猛 增 长,对 如何从海量的信息中准确的搜索 到用户需要的信息提 出了极大的 挑战.网络爬 虫具有 ...
- 基于python的网络爬虫技术_基于python的网络爬虫技术的研究
龙源期刊网 http://www.qikan.com.cn 基于 python 的网络爬虫技术的研究 作者:刘文辉 李丽
- python爬虫论文摘要怎么写_毕业论文-基于Python 的网络爬虫.docx
北京林业大学本科毕业论文(设计) PAGE \* MERGEFORMATI 基于Python的网络爬虫 摘要 随着计算机技术的不断发展,新的编程语言层出不穷,Python,Html正是其中的佼佼者.相 ...
- 基于python的游戏设计与实现-基于Python的网络中国象棋游戏设计与实现
基于Python的网络中国象棋游戏设计与实现 摘要中国象棋是一种家喻户晓的棋类游戏,随着互联网时代的到来,人们的娱乐方式也逐渐向PC端和移动端上发展.本文将传统的中国象棋游戏和当下的互联网技术结合作为 ...
最新文章
- UVA11624大火蔓延的迷宫
- 一个简单问题引发对IEnumerable和IQueryable的思考
- Altium_Designer-PCB的覆铜步骤
- php zend 自动补全,Zend Framework自动加载、简单路由配置(Bootstrap.php)
- dotnetcore-officeaddin-toolbox : Office 365 Add-in开发人员的工具箱
- leetcode116. 填充每个节点的下一个右侧节点指针
- Redis Cluster集群的搭建与实践[转]
- CodeForces round 753 problem B Odd Grasshopper(奇怪的蚱蜢)
- 计算机学情分析万能模板,信息技术的教学计划以及学情分析
- 学用 ASP.Net 之 System.Collections.Specialized.StringDictionary 类
- 2011年智能手机:Android继续闪耀或暗淡?
- win10的计算机策略组,Win10家庭版如何添加组策略功能?
- 现代医院智能化系统方案及其难点探讨
- TOGAF10标准读书会第2场活动精彩继续,高光时刻回顾!
- 查杀新rundl132.exe病毒的过程
- 基于单片机的危险气体泄露报警器设计
- 8090后苦于创业的我们
- 云计算背景下企业发展出现新变化
- 一文详解文本语义相似度的研究脉络和最新进展
- 有限元学习笔记-非线性问题建模与张量应用