[Demo ]javascript 英华学堂在线 刷课脚本
<center><font color=#DC143C size=6> 警告 FBI WARNING</font></center>
![警告](https://img-blog.csdnimg.cn/20201223122306992.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjM3NTM1Ng==,size_12,color_FFFFFF,t_70#pic_center)
<font color=#DC143C size=6 >此文章仅供学习参考,请勿使用在网站使用!!!</font>
<font color=#DC143C size=6 >此文章仅供学习参考,请勿使用在网站使用!!!</font>
<font color=#DC143C size=6 >此文章仅供学习参考,请勿使用在网站使用!!!</font>
---
# 使用Tampermonkey油猴挂载JS代码,实现自动化播放课程。目前未完全实现,仅学习使用。
>Module:JavaScript 、chrome、Tampermonkey油猴
>Status:未完成,Demo Version1.0
>@Author:xiaozhu_sai
>Date:2020/12/22
**脚本代码(功能未能完整实现):**
```javascript
//@Author:xiaozhu_sai
//Date:2020/12/22
//初始准备,点开第一章第一节界面
document.evaluate(\'/html/body/div[5]\', document).iterateNext().style.display = \'none\'
//定位课程目录
var group = document.getElementsByClassName(\'group two \');
//课程章节 item
window.unit = 0;
//执行一次/3s
function start(){
//获取当前页面video元素
var video = document.getElementsByTagName(\'video\');
//获取当前章小节列表 38节
//定位课程目录 test
var group = document.getElementsByClassName(\'group two \');
var navlist = document.getElementsByClassName(\'detmain-navlist\')[0];
var item = navlist.getElementsByClassName(\'item\');
//展开所有章节
for (i=0;i<group.length;i++){group[i].className = "group two on"; }
//空页面, 跳转下一章
if (video.length == 0){
//章节加一
window.unit += 1;
//下一节
item[window.unit].getElementsByTagName(\'a\')[0].click();
}
//视频已播放完
if(video[0].ended == true){
//章节加一
window.unit += 1;
//下一节
item[window.unit].getElementsByTagName(\'a\')[0].click();
}
//未观看&未看完的视频,播放
if (video[0].paused == true && video[0].ended == false){
//静音
video[0].volume = 0;
//开始播放当前视频
video[0].play();
// //测试 加速播放
// video[0].playbackRate = 8;
}
console.log(\'start \',i++, window.unit)
//监听播放结束
//Todo:因为网络原因暂停-事件
//video[0].addEventListener(\'ended\', function(){foo(video, item);}, false);
}
var i = 1
//每分钟执行一次
setInterval(start, 1*1000);
```
## 功能分析:
- 播放每一节的视频,存在空页面章节(测验章节)
- 后台判断课程是否观看完成,是看在视频页面**停留时间**,所以无法单纯使用playbackRate加速播放解决。
- 当前视频播放完,点击进入下一章节
- 在中间章节时,会弹出验证码对话框。由于警告,无法使用python(selenium)/OCR识别解决。
- 由于点击章节页面刷新,控制台脚本失效。使用油猴脚本浏览器插件运行脚本
## 功能实现&未实现
### [ √ ] 已实现
- 运行脚本后,自动检测并播放视频。
- 播放完后自动跳转到下一章节
### [ X ] 未实现
- 遇到空章节(空页面),脚本自动关闭
- 章节低频跳出的验证码,未实现自动识别通过
- 因网络原因可能导致视频暂停,等待,直到网络良好后继续播放课程
## 步骤
1. 安装油猴插件,推荐使用Chrome或FireFox(Edge Opera)
[欢迎来到 Greasy Fork,这里是一个提供用户脚本的网站。](https://greasyfork.org/zh-CN/)
[https://www.tampermonkey.net/](https://www.tampermonkey.net/)
2.
如图操作插件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223125018753.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjM3NTM1Ng==,size_8,color_FFFFFF,t_70#pic_center)
3. 将头部改为
*狗xx狗为自己的课程第一章第一节的url*
```javascript
// ==UserScript==
// @name 观看脚本 Ver1.0
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match http://狗XX狗
// @grant none
// ==/UserScript==
空白处粘贴上述脚本代码
```
4. 开启脚本,刷新网页即可.