优学院刷课代码最新下载地址基于Python
优学院刷课代码基于Python
优学院刷课项目在 15 个月之前就发布了:GitHub 地址[1],很久没用自然就会出些问题。也多次收到过邮件问什么时候更新,2 个月前更新过一次,那次没深入,就随便搞了下,让程序能完整运行起来,但发现没效果。最近有网课要刷,又重新捡起来了!
重蹈覆辙
我又完整了地看了一遍整个流程的网络请求内容,从登录->选课程->选教材->选章节学习->选小节->浏览每个页面->保存学习记录,看的人头皮发麻,不过比去年来说,这次整体重构轻松了不少。
去年写这个刷课的时候麻烦许多,起初准备用
PHP
实现(命令行运行完全可行!!!),所以两边写来写去,代码很混乱。其实
PHP
是准备写成接口调用,可以集成到别的系统中直接使用!出于某些方面的考虑并没有这样做,懂得都懂!
是准备写成接口调用,可以集成到别的系统中直接使用!出于某些方面的考虑并没有这样做,懂得都懂!
修复的时候左手
IDE
断点调试,右手看网络请求,刚开始觉得没啥问题,但就是到了最后一步:学习记录时无法保存,我以为是优学院系统升级了,知道验证用户提交的数据了,都准备放弃了!抱着试试的心态,拿到解密后的提交数据,我只看到有零零星星几处参数的改动,好家伙改参数名混淆视听,有修
XSS
漏洞那范儿了(去年在后台告诉客服这个漏洞,过几天不行了,但后来尝试了几个参数又可以了,真能修)。于是就按照新参数规范重新构造数据,模拟提交,看到成绩和进度以及学习时间的变化,很是欣慰!!!
漏洞那范儿了(去年在后台告诉客服这个漏洞,过几天不行了,但后来尝试了几个参数又可以了,真能修)。于是就按照新参数规范重新构造数据,模拟提交,看到成绩和进度以及学习时间的变化,很是欣慰!!!
效果
先看效果图吧!!!
刷课前
刷课中
注:这次重构改了显示颜色,之前清一色黑底白字,眼睛都看疼了,这次区分显示了,但
cmd
好像效果不太好看,在
Pycharm
里面还可不错滴,如下图:
里面还可不错滴,如下图:
强烈建议在
IDE
中运行,没有别的意思,就是看起来舒服点
中运行,没有别的意思,就是看起来舒服点
刷完后
安排得明明白白地
更新说明
更新了输出颜色(虽然没有实质作用,但心理安慰还是得有)
针对每节每个页面自定义时间,之前写的时候是一节一个时间,感觉太无脑了,有的页面就是点一下就代表学习了,没必要
删除了获取视频时间,本版本输入时间就是视频时间,想要数据更真实,就自己打开视频算吧!
好像没啥了!!!!
对于那个视频时间我要声明一下:他系统把视频链接改成了
m3u8
的,很不错知道升级了!没有之前
mp4
那么容易获取视频时长了(好像不对,更容易了,更快速了),但是呢,也不是没有办法,
m3u8
文件里描述了整个视频如何分割的详细信息,这样就很简单了,读文件,把每一小块的视频时长加起来就能了,为什么没写呢?没必要!当然还有另外的办法,就是你提前把每个视频都播放一下,不用看完,他系统就有记录,某某视频有多长,我去读就能了,为什么没写呢?没必要!
文件里描述了整个视频如何分割的详细信息,这样就很简单了,读文件,把每一小块的视频时长加起来就能了,为什么没写呢?没必要!当然还有另外的办法,就是你提前把每个视频都播放一下,不用看完,他系统就有记录,某某视频有多长,我去读就能了,为什么没写呢?没必要!
至于为什么没必要呢?因为他系统根本就不检测视频时长合不合法!!!传个负值他都觉得合理,建议还是别了,给系统一点儿面子,别给人家搞溢出了。
使用说明
如果不出意外,安装
Python
后你可能只需要再安装两个库:
后你可能只需要再安装两个库:
pip install requests
pip install colorama然后
python main.py
回车 起飞
回车 起飞
注:第二个库是用于在终端展示颜色的,本来是可要可不要的,但是我导入了包,你不用的话就删了 9,10 两行,在
IDE
中不用这个也是可以展示颜色的
中不用这个也是可以展示颜色的
一些说明:时间是累加的,不够可以重新运行,或者在别的小节多输点就能了,多了输入负数,就会减少,0 则保持不变(对单个页面而言),整章是多个小节多个页面配合而来的,其他的没啥了吧!想起来再加吧!看输出信息应该能明白。
功能
自定义学习时间
自定义分数
自动答题
功能去掉了读单词那个功能,今年我们好像没有了,就没加上去,
GitHub
上有这个功能看自己需求吧!
上有这个功能看自己需求吧!
另外为保证程序可控性,加密函数仍由我提供接口调用,暂不公开,其实也很简单,要的直接
F12
,优学院写给你看了
,优学院写给你看了
心得
先聊聊优学院这个平台吧!怎么说呢,只能说有很多问题吧!
首先:就算不校验别的,时间总得校验吧!学习了
-2
个小时,这也是合法数据;今天学习的内容,记录时间是几周前,这也是合法数据;满分一百分,我写个
200
分也是合法数据,真就要多少分自己写呗!!!
分也是合法数据,真就要多少分自己写呗!!!
其次:一看网络请求,请求头有的是
UA-AUTHORIZATION
,有的是
AUTHORIZATION
,本以为是两个不同的东西,一个验证客户端设备,一个验证用户身份,好家伙,cookie 里一看,不能说毫无关系只能说一模一样。
,本以为是两个不同的东西,一个验证客户端设备,一个验证用户身份,好家伙,cookie 里一看,不能说毫无关系只能说一模一样。
感想
写完程序,我都觉得优学院这个系统是不是版本没切换,是
develop
而不是
release
。这也说明
WEB
开发永远的真理:永远不要相信用户的输入,后端开发不要搞些花里胡哨的
banner
,这句话就是永远的
banner
参考资料
[1]
GitHub地址:https://github.com/ufec/youxueyuan