本帖最后由 windtrace 于 2019-11-11 13:31 编辑
灯塔大课堂推出了100首优秀歌曲,非常经典,但每首时间较短,需要手动点击下一首,影响体验,现做一下简单分析
一、歌曲列表从12首扩展到100首
chrome F12 中的Network标签页分析一下可知,接口为:http://dkt.dtdjzx.gov.cn/subcourse/subCoursePage?pagenum=1&pagesize=12
其中的pagesize修改成100即可,工具用任意能够拦截http请求的即可,以fiddler为例,命令行输入:
urlreplace pagesize=12 pagesize=100
二、完成后自动收听下一首
涉及三个步骤:
1.当前进度。用进度条<div>标签的“aria-valuenow”属性即可,值为“100.00”时表示收听完毕。获取代码:
document.getElementsByClassName('vjs-progress-holder vjs-slider vjs-slider-horizontal')[0].getAttribute('aria-valuenow')
2.点击播放列表下一首歌曲
播放列表获取:document.getElementsByClassName('videoLists_bd')[0].children;
点击用click()事件即可
3.播放按钮点击
按钮获取: document.getElementsByClassName('vjs-big-play-button')[0];
点击用click()事件即可
第二部分完整代码:F12 Console面板调试
[Asm] 纯文本查看 复制代码 var lists = document.getElementsByClassName('videoLists_bd')[0].children;//歌曲<div>列表
var eleDiv = null;//progress
var btnPlay = null;//btn
var isBtnplayClicked = false;
var interval = null;//计时器
var i=0;//当前歌曲索引
function myWork(){
eleDiv = document.getElementsByClassName('vjs-progress-holder vjs-slider vjs-slider-horizontal')[0].getAttribute('aria-valuenow');//progress
if(eleDiv == '100.00'){//播放完毕
i=i+1;
if(i >= lists.length){
alert("over!!");
clearInterval(interval);
return;
}
lists[i].click();
isBtnplayClicked = false;
console.log(lists[i].title);
return;
}
if(isBtnplayClicked == false){
btnPlay = document.getElementsByClassName('vjs-big-play-button')[0];//btn
btnPlay.click();//点击
isBtnplayClicked = true;
console.log('播放');
return;
}
console.log('.');
}
interval = setInterval(myWork,2000);
20191111 对于11月份的新任务,直接复制代码,在console里面粘贴并回车执行即可 |