国家智慧教育公共服务平台(2023年暑期教师研修)

前言:最近又要看2023年暑期教师研修高等教育教师专业发展,抓包发现开启倍数无效了,要一个一个点击看视频,岂不是累死人,于是想个办法解放双手。【该网站观看视频时,客户端间隔20~50s向服务端发送一个POST请求,服务器每秒返回ts响应。】

1、抓包更换相应值

注意:
1.下面代码,需要更换自己的cookie、orgId和sourceId
2.orgId和sourceId是永久不变的,一次获取后一直可用
3.segId、itemId、courseId是随着不同课程变化的,同一个课程内所有视频都是相同的
4.videoId是每个视频都不一样

抓包步骤:【点击任意一个视频,开始学习】->【按F12或右键–检查】->【网络(等待15秒),查看Post请求】->【找到对应值更换即可】

在这里插入图片描述
在这里插入图片描述

2、替换值后,运行下面代码


# -*- coding:utf-8 -*-
import requests
import json
import time

# 本脚本只刷每个模块的第一个视频,注意运行完脚本后,都需要自己去对应视频答题,即可获得对应学时
"""
1.orgId和sourceId是永久不变的,一次获取后一直可用
2.segId、itemId、courseId是随着不同课程变化的,同一个课程内所有视频都是相同的
3.videoId是每个视频都不一样
"""

orgId=替换自己的
sourceId=替换自己的

courseName=''
courseId=0
itemId=0
segId=0
videoId=0
videoList=[]
item=set()

# 暑期教师研修内容
content=[
    {
        'courseName':"思想铸魂",
        'courseId':726987629091446784,
        'itemId':726641870617784320,
        'segId':726641816054083584,
        'videoList':[728849882907701248]
    },
    {
        'courseName':"固本强基",
        'courseId':726987629116612608,
        'itemId':726641973097213952,
        'segId':726641920563556352,
        'videoList':[728929480488022016]
    },
    {
        'courseName':"以案促学",
        'courseId':726987629129195520,
        'itemId':726642071551070208,
        'segId':726642024438136832,
        'videoList':[734265050282094592]
    },
    {
        'courseName':"综合育人能力提升",
        'courseId':742239030691524608,
        'itemId':742246596178419712,
        'segId':742246596170031104,
        'videoList':[742712347525410816,742712347525410819,742712347525410822]
    },
    {
        'courseName':"数字素养提升",
        'courseId':742239030662164480,
        'itemId':742246596144865280,
        'segId':742246596136476672,
        'videoList':[742504165599907840]
    },
    {
        'courseName':"科学素养提升",
        'courseId':742239030716690432,
        'itemId':742246596228751360,
        'segId':742246596216168448,
        'videoList':[742707008659296256,742707046128746496]
    },
     {
        'courseName':"培养高校创新型教师队伍",
        'courseId':742239030733467648,
        'itemId':742246596270694400,
        'segId':742246596258111488,
        'videoList':[742632994143928320]
    }
]



totalSize=len(content)

# 需要自己抓包获取cookie;
cookie='替换自己的cookie'

"""50s刷新"""
for index in range(totalSize):
# 给每个模块的第一个视频重新赋值
    item=content[index]

    courseId=item.get('courseId')
    itemId=item.get('itemId')
    segId=item.get('segId')
    videoList=item.get('videoList')
    videoId=videoList[0]
    courseName=item.get('courseName')

    print(f'============开始学习{courseName}课程============')

    # 每隔50s发一次post请求
    while True:
        res = requests.post(
            url=f"https://core.teacher.vocational.smartedu.cn/p/course/services/member/study/progress?orgId={orgId}",
            headers={
                    "User-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62",
                    'Content-Length':'202',
                    'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
                    'Host':'core.teacher.vocational.smartedu.cn',
                    'Cookie':cookie
                    },
            data={
                'courseId': courseId,
                'itemId': itemId,
                'videoId': videoId,
                'playProgress': 666,  #这个随便写都不影响结果
                'segId': segId,
                'type': 1,
                'tjzj': 1,
                'clockInDot': 666,  #这个随便写都不影响结果
                'sourceId': sourceId,
                'timeLimit': '-1',
                'originP': 2,
                })

        if json.loads(res.content)['success']:

            if eval(json.loads(res.content)["data"]["progress"])==1:
                print(f'{courseName}学习完成了')
                time.sleep(51)
                break  # 结束当前while循环
               


            print(time.asctime())
            time.sleep(51)

        else:
            print(json.loads(res.content)['success'])
            print("2■■■■■■■■■■■■■■■■■■■■■■■■学习失败■■■■■■■■■■■■■■■■■■■■■■■■")
            print(time.asctime())
            break


3、针对答题答案

最后需要自己去该网站答题才可获得认证学时,答题答案都在代码中,果然程序员不骗程序员,真棒!!
【答题界面,按下F12】->【审查元素,来到选项中】->【在 question-wrapper,question-body,explain-wrap ,correct-answer中,查看正确答案】

在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值