保姆教程——雨课堂刷课
̷ 四肢名行状懒狗运城储罐保温施工,当然不会花大批时辰在选修课上。之前体验过些刷课的剧本以为很神奇,但是面前好像使用起来有诸多未便,近日在本站上看到两篇质地很的帖子,分别从旨趣和代码上评释注解并终露出雨课堂刷课的操作。
https://www.52pojie.cn/thread-157871-1-1.html https://www.52pojie.cn/thread-1512683-1-1.html于是跟进并学习了下
干货先把跟进的成果共享给大:
后的python剧本不错终了刷和褒贬的。因为刷图片不计分是以没写,另外刷题因为莫得标答是以相应的也莫得呈现
python剧本仅需修改5处即可终了对应,集成度较,便操作,底下是集会:
[集会]:https://pan.baidu.com/s/16cfb_qp3HnbX8s-l2nHXYw
邮箱:215114768@qq.com[索取码]:cccd
操作流程:
本剧本实践需用到python环境和python的requests库,需要自行装置̷ 所需修改的5处地分别对应4、7、8、9、1行代码,默示操作对象的编号和发包的参数
怎样进行修改:
1.先登陆长江雨课堂至如下界面运城储罐保温施工
2.按F12投入开导者器具,弹窗右上角的 “网罗”,再你需要刷的课程,会有如下图的示
3.将代码7行sku_id的值修改为上图free_sku_id的值,将代码8行classroomid的值修改为上图id的值
4.再标头,向下翻至央求标头的位置,将cookie和x-csrftoken的值复制到9行和1行的位置上去。
5.翻到学习日记底部,后个任务,看右侧弹窗中数据包有何新
这个1574头的8位数是任务编号,也便是咱们numlist列表内部需要保存的值,用雷同的式去看个任务的编号,判断编号任务的区间,用代码生成个以个编号为项,衙役为1的递加序列,后个任务编号不要设为尾项,尽量把数据范围扩大些,然后将生成的序列用逗号离隔保存在四行numlist当中。
上述操作松手后脱手即可运城储罐保温施工。松手后会发现和褒贬照旧尽数处分。要是有没看完或者莫得褒贬完的情况大要率是numlist建树的范围小了。
旨趣分析及代码化只想完成任务的小伙伴照旧不错下课了。
腹地浏览器不雅看,发送褒贬在本体上是和雨课堂管事器程度进行交互,式便是通过发送特定帧方法的数据包。咱们的念念路便是通过开导者器具得到对应数据包的帧方法和相应列表元素的具体值,伪造出个真的的数据包,在腹地进行发送,这就不错达到刷和刷褒贬的果。
怎样定位要害数据包关于而言,咱们不错在播放的同期不雅察器具栏的“网罗”窗口有什么变化,大要的发现是每隔个固定的时辰段会有新的数据包发送,而况是重名的。如下图所示
载荷便是这个数据包的具体内容,预览便是你把这个数据包发给管事器后它给你的反映的具体内容。上图中的heartbeat/便是在不雅看时腹地浏览器向雨课堂管事器发送的要害数据,铁皮保温即是在向管事器奉告面前你正在学习这个,管事器收到这个数据包后就会在后台新你的完成度。咱们只需在腹地模拟这个发包的流程即可,须在腹地齐全地复刻上图数据包的齐全信息,这样发送能力奏。
关于每个上头呈现的每个数据可能王人不样,不可每次王人在这内部找然后复制到代码里去,这种操作还不如看。咱们需要管事器给咱们个反映的数据包内部包含咱们需要的信息,这个操作也需要先通过向他发某种特定数据,咱们能力读到反映。如下图
上头这个数据包是在咱们从学习日记点进某个具体的(这里的编号是1574342)后会发送的个数据包,管事器领受到后会反映些具体的信息。比如相比好懂的duration是时长。通过看heartbeat/内部有哪些需要的数据能和上图的信息对的上,告成复制即可。
褒贬褒贬的旨趣和访佛,而况比浅易。“发送”其实便是在向后台发你的褒贬。具体流程不再赘述。仅仅褒贬模板相比单,不可能阐明问题态状去生成妥当的谜底(要是能引入东说念主工智能当我没说),因此会出现毒头不对马嘴的情况。有需要的话不错自行在py文献内部修改。
刷题刷题未能终了的大问题在于不可自动得到题指标正确谜底(总不可刷完王人是错的那不跟没刷样吗)。而况谜底只可提交次,是以不可通过乱发然后得到正确谜底去二次提交。大要的念念路是发送些分歧法的数据包,在不新作答情况的前提下愚弄管事器的正确谜底过来再提交。我先后议论过几种特地的数据包方法去试错:
将answer的内容置为空列表,但复返成果如下:
{"msg"
"\u65e\u6548\u7684\u53c2\u657:[]","error_.code":22,"data":[),
"success":false}
将msg从unicode字符滚动为中语后默示参数有误,这种方法的数据包是不给与的
将answer内容置为谜底之外的字符,比如现时只可选A,B,C,D,我发个1曩昔
{"msg":"""data":{"count":1,"is show answer":true,"my score":.,"my count":1,"my answers":{"1":false},"is correct":false}
success":true}
发送诚然奏了但是告成给我判错了,很缺憾
可行的法可能便是提前准备好每说念题的谜底,发送央求的技艺告成找对应题号的谜底就不错了。但是相比鸡肋,我要有谜底了还何苦写进这个剧本呢,不如告成用手交来的便。
干系的化两篇作家王人建议在投入某个课程的技艺会把统共这个词要学习的目次以数据包的形态发过来,那学习对象的编号当然则言就在内部了,但是我找了以下只发现了部分数据如下图:
很明我要看的王人不啻这样点吧。索我干脆也不去扒这部分数据了,领受访佛泛洪的念念想,向从起原到收尾每个编号王人发送访佛的“”央求,要是莫得对应编号的任务会复返“Objects does not exit.",据此旨趣告成跳过即可。
至于怎样分辩现时任务是如故数据运城储罐保温施工,不错对比后复返来的数据包的具体内容,不错发现的是的leaf_id=,而褒贬的leaf_id=4.要是后期对功课有新的处分主义的话,它的leaf_id为6,不错告成通过这个键值来分辩不同的任务类型,无谓特定去生成些videolist,commentlist和problemlist去保存对应的编号
相关词条:玻璃棉