学习公社、华兴科软网课培训倍速及自动播放下一集脚本学习

提示:文章含有所有相关代码,但文主不是相关专业,方法并非最优


前言

文主最近有很多网课要刷,典型的就是学习公社和华兴科软,不知道有没有其他小伙伴了解过,反正我个人觉得是很头大,在网上搜索了很多相关的脚本,但也看不懂,也没法拿过来用,就自己写了个简单粗暴的,方法肯定不是最优的,但凑活能用。


提示:以下是本篇文章正文内容

一、网课首页

学习公社:https://study.enaea.edu.cn/*
华兴科软:https://hxpxxy.cn/*

二、视频倍速

因为学习公社网课不能倍速,而华兴科软只能二倍,所以优先实现视频倍速的功能,用的是最简单的逻辑,目前两个网址都能用,就是加一个时钟事件,不停获取当前网页内的‘video’元素,并把所有‘video’播放速度更改。代码如下:

window.setInterval(function(){
    var v=document.getElementsByTagName('video');
    for (var i=0;i<v.length;i++)
    {
        if(v[i].playbackRate!=3)
        {v[i].playbackRate = 3;}
    }
   },5000)

其中,3是倍率,5000是时间间隔,可以随便改。

三.、学习公社分析

因为文主在写这篇文章时,自己的学习公社视频已经学习完,不能再打开了,所以只能照着代码说一下自己的思路,无法对照实际截图来看。代码分为两部分,一部分是播放页面的,可以更改播放速度,并自动点击每隔一段时间弹出来的“继续学习”按钮。另一部分是课程页面的,可以检测所有课程播放进度,已学习课程都是100%时,自动切换下一节课。

1. 第一部分自动点击代码

// ==UserScript==
// @name         点击弹窗
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://study.enaea.edu.cn/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @run-at       document-end
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    
    window.setInterval(function(){
    var v=document.getElementsByTagName('video');
    for (var i=0;i<v.length;i++)
    {
        if(v[i].playbackRate!=3)
        {v[i].playbackRate = 3;}
    }
   },5000)

    window.setInterval(function(){
        if($('button:contains(继续学习)').text()!='')
            $('button:contains(继续学习)')[0].click()
    },5000)
    // Your code here...
})();

其中获取继续学习按钮元素,和点击该按钮,都是用时钟事件不断检测的,会占用资源,但我不会别的,就这么写了,哈哈。

2. 第二部分代码

// ==UserScript==
// @name         自动切换
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://study.enaea.edu.cn/circleIndexRedirect.do?action=toNewMyClass&type=course&circleId=*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @run-at       document-end
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    
    window.setInterval(function(){
    location.href = location.href;
    var progressValues=document.getElementsByClassName('progressvalue'); //获取所有课程进度值
    var startbuttons=document.getElementsByClassName('golearn  ablesky-colortip  saveStuCourse');//获取开始学习按钮
    var isEnd=true;
    //遍历所有进度,查看已学习课程是否都学至进度100%
    for (var i = 0; i < progressValues.length; i++) {
        if(progressValues[i].textContent!='0%' && progressValues[i].textContent!='100%'){
            isEnd=false;
            break;
        }
    }
    //若已学完当前课程,切换下一集播放
    if(isEnd){
        for (var j = 0; j < progressValues.length; j++) {
            if(progressValues[j].textContent=='0%'){
                startbuttons[j].click();
                break;
            }
        }
    }

    },3*60*1000)
    // Your code here...
})();

代码中的进度值获取,和开始按钮获取的‘ClassName’都是F12里找的,就是下图标注的两个地方,通过不断获取进度值,判断是否达到100%,若已达到,就点击下一个进度0%的视频,进行学习。
学习公社进度和学习按钮

四、华兴科软分析

华兴科软学习界面如下
华兴科软学习界面
写脚本实现两个功能,一是调节视频播放速度,二是自动切换播放‘未完成’的视频。
代码如下:

// ==UserScript==
// @name         华兴科软视频
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       Liji
// @match        https://hxpxxy.cn/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @run-at       document-end
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    //视频速度调节
    window.setInterval(function(){
    var v=document.getElementsByTagName('video');
    for (var i=0;i<v.length;i++)
    {
        if(v[i].playbackRate!=3)
        {v[i].playbackRate = 3;}
    }
   },5000)
   //自动播放下一个视频
   window.setInterval(function(){
    var allDoingProject=document.getElementsByClassName('doing');       //获取正在进行中的视频
    var allNoStartProject=document.getElementsByClassName('no-start');  //获取未开始的视频
    //播放未开始的视频
    if(allDoingProject.length==0)
    {
        if(allNoStartProject.length!=0)
        {
            allNoStartProject[0].click();
            setTimeout(function() {
                const videos = document.querySelectorAll('video');
                videos[0].play();
              }, 5000);

        }
    }

   },5000)
    // Your code here...
})();

五、脚本使用

以上几个脚本,都能够直接在油猴脚本中使用,油猴脚本安装方法及使用可以在其他教程中找到,这里就不详细展开了。
安装好油猴脚本插件后,点击新建脚本,将上述所需脚本全选复制粘贴,之后保存,关闭浏览器,重新打开相关网站,即可自动启用。


总结

以上就是两个不太主流的网课学习网站的网课学习脚本,也正因为不太主流,所以网上与其相关的成熟脚本应用较少,所以只能自己写一个凑活能用的,代码比较粗糙,而且解决方法也不尽完美,不过用起来还是比较简单的,希望对大家有所帮助吧。
当然,这两个代码虽然只涉及了两个网站,可能有些网课网站没有涉及到,但是一些通用的思路和代码都是可取的,如果读者有其他网站也想实现相关功能,苦于无处下手的话,也可以评论留个邮箱,互相联系。

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值