标签搜索

职教云-智慧职教,网课观看分析(秒刷网课)

Lan
Lan
2020-04-27 / 15 评论 / 6,970 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2020年04月27日,已超过455天没有更新,若内容或图片失效,请留言反馈。

先来张效果图:

image.png

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

image.png

image.png

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

image.png

CourseOpenID:这个课程ID可以直接在网址栏查看

OpenClassID:这个课程班级ID一样的可以直接在网址栏看

上面这两个值在同一个课程都是不变的

CellID:这个就是下一步分析怎么来的了

token:后来发现这个和Cookie里面的token是一样的,所以也可以不变

下面是分析CellID的获取过程:

1,首先是获取整个课件的大列表,也就是下图这一块

image.png

打开之后按F12,打开工具,然后刷新网页

可以看到,多了三个东西出来

getProcessList,getStuStudyClassList,getTopicByModuleId

image.png

一个个来看吧,从第一个开始

getProcessList:

他提交了两条数据,一个是课程id一个是课程班级id

返回来一个list,全部展开之后就是我们的课件列表了

image.png

返回来第一级目录,和他的ID

image.png

然后是第二个getStuStudyClassList:

这个是获取你账户下有哪些课程,在这里可以不用管

第三个是getTopicByModuleId

可以看到这个是二级目录的id,然后uptopicid这个应该是上传者的id(网易翻译猜的,在这里没啥用,不过修改作业时间那里需要这个id)

image.png

到这里,目前的三个包已经分析完了,但是还是没有得到刷进度要的CellID,这三个包只翻出来二级目录,还差最后课件的ID就行了,那是因为我们还没有展开课件,所以没有加载,然后我们现在来点开二级目录查看一下

image.png

查看一下Form Data:

image.png

一个三个值,第一个courseOpenID:说过了的,第二个OpenClassID:说过的,第三个topicid:现在说

topicid:fzpq初步估计就是就是之前传递过的值,经对比可以发现这个id等于我们获取到的二级目录ID。

到这里就已经得到了最开始我们所需要的CellID了

image.png

回过神看这个文件列表发现,职教云好实诚呀。。

image.png

第一个getProcessList:获取列表

第二个getStuStudyClassList:获取学生学习班级列表

第三个TopicidByMouduleid:通过Moduleid获取Topicid

第四个getCellByTopicId:通过Topicid获取CellID

总上就可以快乐的为所欲为了

最后附上批量获取课程CellID的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


1

评论 (15)

取消
  1. 头像
    访客 作者
    Android · Google Chrome

    好棒好喜欢 爱了爱了

    回复
  2. 头像
    访客 作者
    Windows 10 · Google Chrome

    厉害,大佬!
    棒棒哒

    回复
  3. 头像
    访客 作者
    Windows 10 · Google Chrome

    大佬有没有加时长功能啊

    回复
  4. 头像
    Lan 作者
    Windows 10 · Google Chrome
    @

    可以呀,传递的值里面就有一个新看的时间,直接改那个就行了吧

    回复
  5. 头像
    访客 作者
    Windows 7 · Google Chrome

    感觉好厉害,但是还是不知道怎么弄,先收藏吧,作者大大

    回复
  6. 头像
    访客 作者
    Android Pie · Google Chrome

    大佬我还没学Python,代码是复制到控制台吗还是用的啥软件,然后cellid要怎么改

    回复
  7. 头像
    访客 作者
    Android Pie · Google Chrome

    我小白一个,求大佬指点

    回复
  8. 头像
    Lan 作者
    Windows 10 · Google Chrome
    @ 访客

    目前批量获取这个已经获取不了了,手机端API都已经加了Token,你可以自己在网页端手动获取,获取之后你就用FD这样的抓包软件改时间就行了

    回复
  9. 头像
    访客 作者
    Android Pie · Google Chrome
    @ 访客

    谢谢

    回复
  10. 头像
    访客 作者
    Windows 10 · Google Chrome

    大佬,我试了下,火狐浏览器里对包进行编辑重发的话,发起者这一栏不一样,而且响应里面显示的异常操作。不知道这个怎么解决

    回复
  11. 头像
    访客 作者
    Windows 10 · Google Chrome
    @ 访客

    还有就是我这种操作对另一门课就能操作成功,操作异常的课,异常的次数多了,服务器就检测出来了我在刷课,并将这门课封了半小时。

    回复
  12. 头像
    访客 作者
    Android · Google Chrome

    大佬求教,是用抓包直接改stuProcessCelllog里面的时间吗?

    回复
  13. 头像
    访客 作者
    Windows 10 · Google Chrome

    现在加了token了,没用了呀

    回复