陕西干部网络学院刷课脚本分享
# 前面的话
上周西安的刘姐联系我,说他们在陕西干部网络学院上网课,网址是 https://www.sqgj.gov.cn/ 。这是陕西省委组织部做的干部培训平台,省内干部每年都得在这儿刷够学时。党建理论、乡村振兴、创新驱动啥的,课程倒是挺全的,就是视频太长了,一门课动辄七八个小时。刘姐白天开会、下乡,晚上还得陪孩子作业,根本没空一直盯着屏幕看。
说实话,第一次接触这个平台的时候,那个视频播放器真让我有点头疼。进度条时不时卡一下,有时候视频播完了页面也不跳转,还得手动去点下一节。上周我花了两天时间研究,总算整出来个能用的脚本,能自动切换下一视频,多少能省点事。
# 平台情况
陕西干部网络学院访问地址是 https://www.sqgj.gov.cn/ ,登录后左侧有课程分类,右侧是具体课程列表。每门课分好几个小节,每个小节都是视频加课后题。
播放器用的是挺常见的那种,视频播放有进度条能看。切到下一节视频的时候,得等当前视频完全播完才能点,不然进度不算。平台检测闲置的方式就是看你鼠标动没动,长时间不操作可能就弹提示。
# 脚本功能
针对陕西干部网络学院这个平台,脚本实现了以下功能:
视频播放监测,每5秒检查一次当前视频状态,发现播完了就自动切下一节。自动切换逻辑,会自动找到下一个没看完的视频点击播放,不用手动去课程列表里找。进度智能识别,只切换还没完成100%的视频,已完成的自动跳过。
脚本安装地址:
https://scriptcat.org/zh-CN/script-show-page/5756 (opens new window)
# 代学服务
提示
如需代学,请联系客服,支持闲鱼交易。

微信联系:yizhituziang

QQ联系:2422270452
- img: /img/weixin.jpg
name: 微信联系:yizhituziang
- img: /img/qq.jpg
name: QQ联系:2422270452
如果不会安装脚本,请按照下面安装教程来操作。
# 安装教程
# 1.安装浏览器扩展插件
首先需要给我们的浏览器安装上脚本猫插件,这是运行所有用户脚本的基础,如果浏览器已经安装过了脚本猫或者油猴插件,那么可以跳过这一步。推荐使用edge浏览器,安装插件更方便。
浏览器打开网址:https://docs.scriptcat.org/ (opens new window)
这里用edge浏览器作为示范,点击 “添加到Edge浏览器”

接着点击 “获取”

在右上角弹出的窗口,点击 “添加扩展”

等待几秒钟,会提示已经安装好脚本猫插件了。

# 2.安装刷课脚本
打开脚本安装地址后,在页面点击 “安装脚本” 按钮,接着在弹出的窗口点击 “安装” ,之后就会提示“安装成功”。
# 3.体验脚本功能
安装脚本后,需要重新进入学习站点,如果之前已经打开课程学习页面,那么需要刷新页面后脚本才会生效。
# 适用情况
第一种是工作忙的,像刘姐那样白天根本没时间,晚上零碎时间也不想一直守着,用脚本挂着让视频自己跑。第二种是课程多的,年底发现自己还有十几门课没刷完,用脚本至少能省去手动切换的时间。第三种是想解放双手的,让脚本自动跑,自己该干嘛干嘛去。
# 使用注意
倍速方面,陕西干部网络学院播放器支持正常倍速播放,可以根据自己情况调。浏览器推荐用Chrome或者Edge,这俩对视频支持比较稳。360浏览器的话记得开极速模式。
进度同步方面,平台会定期保存学习进度,脚本运行时候尽量别开太多标签页。课后题还是得自己做的,脚本只管视频部分。
# 技术原理
脚本核心逻辑其实不复杂,用setInterval定时器每5秒检查一次视频状态。检测到视频播完了,就遍历课程列表找到下一个进度不是100%的视频,然后点击切换。
进度判断用的是el-progress组件的aria-valuenow属性,这个属性值为100就是完成了。点击切换用的是 vvitem 这个class选择器,找到未完成的视频项直接模拟点击。
# 常见问题
视频加载不出来可以试试刷新页面,脚本会自动重新开始检测。浏览器推荐Chrome或Edge,其他浏览器可能兼容性问题。多标签页同时刷的话,平台可能会检测到同一账号多处登录。
# 写在最后
陕西干部网络学院这个平台还挺正规的,课程内容覆盖也广。脚本主要解决自动切换的问题,省去手动点下一节的麻烦。
# 核心代码
(function () {
'use strict';
if (location.href.indexOf("/study?flag=") != -1) {
setInterval(function () {
var video = document.querySelector("video")
if (video && video.ended) {
nextVideo()
}
}, 5000)
}
function nextVideo() {
var videoLength = document.querySelectorAll(".vvitem").length
for (let i = 0; i < videoLength; i++) {
let jindu = document.querySelectorAll(".vvitem")[i].querySelector(".el-progress--without-text").getAttribute('aria-valuenow');
if (jindu == '100') {
continue
}
document.querySelectorAll(".vvitem")[i].click()
break
}
}
})();