吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14091|回复: 58
收起左侧

[Python 转载] 职教云网课进度分析(秒网课)+批量获取CellID的python代码

  [复制链接]
hhxk 发表于 2020-4-28 10:48
本帖最后由 hhxk 于 2020-4-29 14:26 编辑

先来张效果图:

当打开课件之后,发现右侧或不断发送一个包StuProcessCellLog的包,初步估计这就是不断向服务器发送我们目前的观看情况的包


点开之后翻到最下面,可以看到Form Data,经过自己之前补签的分析,可以猜到下面对应的值的信息,以及刷网课的思路

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代码
[Python] 纯文本查看 复制代码
import random
import time
import requests


def get_all():
    url = 'https://zjyapp.icve.com.cn/newmobileapi/assistTeacher/getModuleListByClassId'
    data = {
        'courseOpenId': 'courseOpenId',
        'openClassId': 'courseOpenId',
        'stuId': 'stuId',
    }
    html = requests.post(url=url, data=data).json()
    data = html['moduleList']
    moduleIds = []
    for i in data:
        print(i['moduleName'] + '已加载')
        moduleIds.append(i['moduleId'])
    return moduleIds


def get_list(moduleId):
    url = 'https://zjy2.icve.com.cn/newmobileapi/assistTeacher/getTopicListByModuleId'
    moduleIds = []
    for i in moduleId:
        data = {
            'openClassId': 'openClassId',
            'courseOpenId': 'courseOpenId',
            'moduleId': f'{i}'
        }
        html = requests.post(url=url, data=data).json()
        data = html['topicList']
        for j in data:
            moduleIds.append(j['topicId'])
    return moduleIds


def get_cell(topicIds):
    url = 'https://zjy2.icve.com.cn/newmobileapi/assistTeacher/getCellListByTopicId'
    cellids = []

    for k in topicIds:
        data = {
            'openClassId': 'openClassId',
            'courseOpenId': 'courseOpenId',
            'topicId': k,
            'stuId': 'stuId'
        }
        html = requests.post(url=url, data=data).json()
        data = html['cellList']
        for i in data:
            if i['categoryName'] == '子节点':
                for j in i['cellChildNodeList']:
                    cellids.append(j['cellId'])
            else:
                cellids.append(i['cellId'])
    return cellids

--------------------------------------------------------------
补签操作我就不做教程了,代码我已经放到GitHub了:https://github.com/vastsa/ZhiJiaoYunQianDao
给个小star好不好嘿嘿,

免费评分

参与人数 12吾爱币 +11 热心值 +9 收起 理由
i不存在的 + 1 厉害了
igfpxnb + 1 + 1 用心讨论,共获提升!
moxiaomo + 1 + 1 谢谢@Thanks!
LAOFW2 + 1 + 1 谢谢@Thanks!
一叶知夏 + 1 鼓励转贴优秀软件安全工具和文档!
songzebin + 1 大佬厉害👍🏻
niceboge + 1 + 1 谢谢@Thanks!
唐潇涵 + 1 + 1 我很赞同!
血族丿幻世灬 + 1 + 1 热心回复!
musicer03 + 1 用心讨论,共获提升!
kohane + 1 + 1 用心讨论,共获提升!
媚眼的丹客 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

AI_童话 发表于 2020-10-6 17:01
学习一下
 楼主| hhxk 发表于 2020-4-28 11:44
tt4155 发表于 2020-4-28 11:41
如果全部是get的呢  没有post    打小报告全是get

一般get就更加的老实了,要传递的参数全部在那个request url里面,你可以这样拆分一下
从?开始就是第一个参数然后后面有一个=号,就是这个参数的值
每次&后面就会另跟一个参数
x2005y 发表于 2020-4-28 10:56
小熊点灯 发表于 2020-4-28 11:03
感谢楼主分享,可惜小白不会用
vethenc 发表于 2020-4-28 11:07
感谢分享
刘留留 发表于 2020-4-28 11:09
云教育都可以使用吗,正愁找不到刷时间的呢,谢谢了
 楼主| hhxk 发表于 2020-4-28 11:10
刘留留 发表于 2020-4-28 11:09
云教育都可以使用吗,正愁找不到刷时间的呢,谢谢了

这个我就不清楚了,这个是职教云的,但是感觉原理应该都一样吧
Jackie7 发表于 2020-4-28 11:12
谢谢楼主
sensen 发表于 2020-4-28 11:27
看不了图
斩风 发表于 2020-4-28 11:28
还是小白 先学习下
 楼主| hhxk 发表于 2020-4-28 11:29

刷新一下,现在应该可以了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表