如何穿透網課雙層Iframe框架阻攔,實現自動播放網課視頻

有些網課真的是很糟糕,無法實現後臺播放,鼠標移動離開播放器範圍就自動停止播放,這樣的話,導致上課只能上課,有時候接個電話和看消息都會導致課程中斷,着實不好,今天我們就來解決下這個不是大問題的小問題

要是實現自動刷課的方法其實很簡單,核心點就是讓視頻實現自動播放,網站的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);

教程僅供學習交流使用,切勿用於惡意刷課

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章