提示:文章含有所有相关代码,但文主不是相关专业,方法并非最优
前言
文主最近有很多网课要刷,典型的就是学习公社和华兴科软,不知道有没有其他小伙伴了解过,反正我个人觉得是很头大,在网上搜索了很多相关的脚本,但也看不懂,也没法拿过来用,就自己写了个简单粗暴的,方法肯定不是最优的,但凑活能用。
提示:以下是本篇文章正文内容
一、网课首页
学习公社: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...
})();
五、脚本使用
以上几个脚本,都能够直接在油猴脚本中使用,油猴脚本安装方法及使用可以在其他教程中找到,这里就不详细展开了。
安装好油猴脚本插件后,点击新建脚本,将上述所需脚本全选复制粘贴,之后保存,关闭浏览器,重新打开相关网站,即可自动启用。
总结
以上就是两个不太主流的网课学习网站的网课学习脚本,也正因为不太主流,所以网上与其相关的成熟脚本应用较少,所以只能自己写一个凑活能用的,代码比较粗糙,而且解决方法也不尽完美,不过用起来还是比较简单的,希望对大家有所帮助吧。
当然,这两个代码虽然只涉及了两个网站,可能有些网课网站没有涉及到,但是一些通用的思路和代码都是可取的,如果读者有其他网站也想实现相关功能,苦于无处下手的话,也可以评论留个邮箱,互相联系。