慕课协议分析

python 代码
原创编写!!!
在这里插入图片描述

# 原创编写!!!

import requests
import re
import json

ToualeCookie = ""



def _getOrigin():
    url = 'http://mooc.gzhu.edu.cn/portal/ajaxMyCourseIndex.mooc'
    headers = {"cookie": ToualeCookie}
    postData = "keyWord=&tabIndex=1&searchType=0&schoolcourseType=0&pageIndex=1"
    postData = {'keyWord': '', 'tabIndex': '1', 'searchType': '0', 'schoolcourseType': '0', 'pageIndex': '1'}
    res = requests.post(url, data=postData, headers=headers)
    result = re.findall(
        r'<a class="view-shadow" href="/portal/session/index/(\d+).mooc">[\s\S]*?<span class="cview-time">(.*)</span>',
        res.text)
    for i in result:
        print('课程:', 'ID 号:{} , 课程名:{}'.format(i[0], i[1]))



def _getItemID(origin):
    url = 'http://mooc.gzhu.edu.cn/portal/session/unitNavigation/' + origin + '.mooc'
    headers = {"cookie": ToualeCookie}
    res = requests.get(url, headers=headers)
    result = re.findall(r'itemId="(\d+)" title="(.*)">', res.text)
    #     print(result)
    for i in result:
        if (i[1].find('.mp4') != -1):
            print('正在进行:', 'ID 号:{} , 视频名:{}'.format(i[0], i[1]))
            _itemId = i[0]
            _nodeId = _getNodeID(_itemId)
            duration = _getClass(_itemId, _nodeId)

            _updateDuration(_itemId, duration)
            


def _getNodeID(itemID):
    url = 'http://mooc.gzhu.edu.cn/study/play.mooc'

    headers = {"cookie": ToualeCookie}
    postData = {'itemId': itemID, 'itemType': '10', 'testPaperId': ''}
    res = requests.post(url, data=postData, headers=headers)
    return _getMiddleStr(res.text, 'nodeId" value="', '"/>')


def _getClass(itemId, nodeId):
    url = 'http://mooc.gzhu.edu.cn/item/detail.mooc'
    headers = {"cookie": ToualeCookie}
    postData = {'nodeId': nodeId, 'itemId': itemId}
    res = requests.post(url, data=postData, headers=headers)
    #     print(res.text)

    str = json.loads(res.text)
    str = str['node']['fileMeta']

    str = json.loads(str)
    str = str['duration']

    return str


def _getMiddleStr(str, start, end):
    s = str.find(start)
    e = str.find(end, s)
    return str[s + len(start):e]


def _updateDuration(itemId, duration):
    url = 'http://mooc.gzhu.edu.cn/study/updateDurationVideo.mooc'
    postData = {'itemId': itemId, 'isOver': '1', 'currentPosition': duration, 'duration': duration}
    headers = {"cookie": ToualeCookie}

    res = requests.post(url, data=postData, headers=headers)
    print(res.text)
    return res.text

def _setCookie(temp):
    global ToualeCookie
    ToualeCookie = temp

if __name__ == '__main__':
    temp = input("请粘贴输入cookie");
    _setCookie(temp)


    print('======  获取课程名  ======')
    _getOrigin()
    print()
    print()

    classId = input("请输入课程号 ID:");
    print('======  获取课程章节  ======')
    _getItemID(classId)
    print()
    print()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值