有些網課真的是很糟糕,無法實現後臺播放,鼠標移動離開播放器範圍就自動停止播放,這樣的話,導致上課只能上課,有時候接個電話和看消息都會導致課程中斷,着實不好,今天我們就來解決下這個不是大問題的小問題
要是實現自動刷課的方法其實很簡單,核心點就是讓視頻實現自動播放,網站的dom是暴露的,通過操控網站的頁面dom來達到控制效果顯然要容易得多,我們這裏使用簡單的demo做個演示
穿透框架 (模擬效果演示)
假設我們要他突破的網站有這些目錄,共3層網頁,以iframe進行嵌套,爲什麼那麼繁瑣???因爲這是防止普通插件刷課的阻攔方法,網站故意的。
網站文件目錄 如下所示 >>>
index.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
iframe{
width: 100%;
height: 600px;
}
</style>
</head>
<body>
<iframe src="./index_1.html" frameborder="0"></iframe>
</body>
</html>
index_1.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
iframe{
width: 100%;
height: 600px;
}
</style>
</head>
<body>
<iframe src="./index._2.html" frameborder="0"></iframe>
</body>
</html>
index_2.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
iframe{
width: 100%;
height: 600px;
}
video{
height: 600px;
}
</style>
</head>
<body>
<video src="./Doctor_Who_1.mp4" controls></video>
</body>
</html>
頁面效果 >>>
接下來我們進行穿透教學,第一步是獲取最外層的iframe框 >>>
document.querySelector('iframe')
第二步是獲取中間層的iframe框 >>>
document.querySelector('iframe').contentWindow.document.querySelector('iframe')
第三步是獲取最裏層的iframe框 >>>
document.querySelector('iframe').contentWindow.document.querySelector('iframe').contentWindow.document.querySelector('iframe')
到這一步我們可以看見iframe裏面已經包含video標籤了,現在可以進行調用來播放視頻
document.querySelector('iframe').contentWindow.document.querySelector('iframe').contentWindow.document.querySelector('video').play();
我們在控制檯輸入上面這個代碼,就能實現調用ifram框裏面的ifram框裏面的Iframe框裏面的video標籤,實現腳本控制播放,這就是穿透的效果演示 :
有些網站的網課像實現自動化播放也是這個道理,你只要寫出了穿透iframe框的腳本,只要能解決如何獲取到video標籤的對象這個問題,然後在控制檯放這個代碼執行,加個計時器就能實現自動播放,鼠標隨便移動到任何地方都不會暫停了,想實現自動下一集可以繼續優化代碼自動點擊或者配合python的selenium做自動化處點擊執行,無人值守的刷課效果…哼…這個思路只是提供學習交流,希望大家以後設計網站的時候能注意這一點,填補這個漏洞
刷網課視頻的代碼 (可實戰應用)
學習通測試代碼 (複製後在控制檯輸入後回車,能自動播放視頻,無視題目中斷播放) >>>
var timeAssassins=setInterval(()=>{document.getElementById('iframe').contentWindow.document.getElementsByTagName('iframe')[0].contentWindow.document.getElementById('video_html5_api').play();},1000);
教程僅供學習交流使用,切勿用於惡意刷課