职教云、智慧职教、网课观看分析(秒刷网课)脚本含自动答答案
先来张功效图:
当翻开课件之后,创造右侧或连接发送一个包stuprocesscelllog的包,发端估量这即是连接向效劳器发送暂时的观察情景的包
courseopenid:这个课程id不妨径直在网址栏察看
openclassid:这个课程班级id一律的不妨径直在网址栏看
上头这两个值在同一个课程都是静止的
cellid:这个即是下一步领会如何来的了
token:厥后创造这个和cookie内里的token是一律的,以是也不妨静止
底下是领会cellid的获得进程:
1,开始是获得所有课件的大列表,也即是下图这一块
翻开之后按f12,打动工具,而后革新网页
不妨看到,多了三个货色出来
getprocesslist,getstustudyclasslist,gettopicbymoduleid
一个个来看吧,从第一个发端
getprocesslist:
他提交了两条数据,一个是课程id一个是课程班级id
返回顾一个list,十足打开之后即是的课件列表了
返回顾第头等目次,和他的id
而后是第二个getstustudyclasslist:
这个是获得你账户下有哪些课程,在这边不妨不必管
第三个是gettopicbymoduleid
不妨看到这个是二级目次的id,而后uptopicid这个该当是上传者的id(网易翻译猜的,在这边没啥用,然而窜改功课功夫何处须要这个id)
到这边,暂时的三个包仍旧领会结束,然而仍旧没有获得刷进度要的cellid,这三个包只翻出来二级目次,还差结果课件的id就行了,那是由于还没有打开课件,以是没有加载,而后此刻来点开二级目次察看一下
察看一下form data:
一个三个值,第一个courseopenid:说过了的,第二个openclassid:说过的,第三个topicid:此刻说
topicid:fzpq发端估量即是即是之前传播过的值,经比较不妨创造这个id即是获得到的二级目次id。
到这边就仍旧获得了最发端所须要的cellid了
回过神看这个文献列表创造,成教云好实诚呀。。
第一个getprocesslist:获得列表
第二个getstustudyclasslist:获得弟子进修班级列表
第三个topicidbymouduleid:经过moduleid获得topicid
第四个getcellbytopicid:经过topicid获得cellid
总上就不妨痛快的随心所欲了
结果附上批量获得课程cellid的python代码
import randomimport timeimport requestsdef get_all():url = &9;https://zjyapp.icve.com.cn/newmobileapi/assistTeacher/getModuleListByClassId&9;data = {&9;courseOpenId&9;: &9;courseOpenId&9;,&9;openClassId&9;: &9;courseOpenId&9;,&9;stuId&9;: &9;stuId&9;,}html = requests.post(url=url, data=data).json()data = html[&9;moduleList&9;]moduleIds = []for i in data:print(i[&9;moduleName&9;] + &9;已加载&9;)moduleIds.append(i[&9;moduleId&9;])return moduleIdsdef get_list(moduleId):url = &9;https://zjy2.icve.com.cn/newmobileapi/assistTeacher/getTopicListByModuleId&9;moduleIds = []for i in moduleId:data = {&9;openClassId&9;: &9;openClassId&9;,&9;courseOpenId&9;: &9;courseOpenId&9;,&9;moduleId&9;: f&9;{i}&9;}html = requests.post(url=url, data=data).json()data = html[&9;topicList&9;]for j in data:moduleIds.append(j[&9;topicId&9;])return moduleIdsdef get_cell(topicIds):url = &9;https://zjy2.icve.com.cn/newmobileapi/assistTeacher/getCellListByTopicId&9;cellids = []for k in topicIds:data = {&9;openClassId&9;: &9;openClassId&9;,&9;courseOpenId&9;: &9;courseOpenId&9;,&9;topicId&9;: k,&9;stuId&9;: &9;stuId&9;}html = requests.post(url=url, data=data).json()data = html[&9;cellList&9;]for i in data:if i[&9;categoryName&9;] == &9;子节点&9;:for j in i[&9;cellChildNodeList&9;]:cellids.append(j[&9;cellId&9;])else:cellids.append(i[&9;cellId&9;])return cellids