博客 / 詳情

返回

雨課堂刷課腳本-使用Python的Selenium庫實現

前情提要:
此腳本實現了雨課堂刷視頻【1倍數】【自動連播】
若腳本失效,請檢查雨課堂網站是否有更新,以免影響腳本執行。

下面是具體步驟(針對萌新)

第一步:
為你的電腦安裝和配置Python運行環境,你可以從Python官方網站下載並安裝最新版本的Python。
Python官方網站

image.png

第二步:
進入Python安裝目錄,使用pip安裝Selenium,輸入下列代碼

pip install selenium

image.png

或是使用PyCharm,方便編碼修改和安裝依賴庫Selenium
PyCharm下載地址

image.png

第三步:
查看瀏覽器版本,並下載瀏覽器驅動引擎(這裏以谷歌瀏覽器為例子)

image.png

谷歌瀏覽器驅動引擎下載地址

找到對應的鏈接複製到瀏覽器即可下載,這裏提供Windows 64位的下載鏈接
chrome-win64下載地址

將下載得到的壓縮包中的chromedriver.exe複製下來,粘貼到Python安裝目錄中
(與python.exe同一文件夾)

image.png

第四步:
拿到雨課堂登錄所用的sessionid,登錄雨課堂後按F12打開開發者工具,進入應用-Cookies選項

image.png

名稱為sessionid的值,就是我們下面代碼所要替換的值,可以事先複製下來,需要編輯到代碼

Python代碼如下所示

# =============================================================================
# 文件名稱: yvketang.py
# 功能描述: 本腳本用於自動登錄雨課堂平台並播放指定課程的視頻。
#           腳本使用Selenium庫來模擬用户操作,實現自動化播放。
# 作者: HAPPY
# 創建日期: 2024年11月21日
# 版本: 1.0
# 使用方法:
#   1. 安裝必要的依賴庫selenium。
#   2. 修改配置信息,登錄信息、視頻地址等。
#   3. 運行腳本。
# 注意事項:
#   - 請確保網絡連接正常。
#   - 在運行腳本前,請檢查雨課堂網站是否有更新,以免影響腳本執行。
#   - 本腳本僅供學習交流使用,請勿用於非法目的。
# =============================================================================
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from time import sleep

# 配置Chrome選項
chrome_options = Options()
chrome_options.add_argument("--mute-audio")  # 靜音瀏覽器

# 初始化Chrome驅動
driver = webdriver.Chrome(options=chrome_options)

# 打開目標網站
driver.get("https://www.yuketang.cn/web")

# 等待頁面加載
sleep(4)

# 添加Cookie
driver.add_cookie({'name': 'sessionid', 'value':'替換為前面説到的sessionid的值'})

# 刷新頁面以使Cookie生效
driver.refresh()

# 再次等待頁面加載完成
sleep(4)

# 定義視頻地址列表(替換為你的視頻播放地址)
video_urls = [
    "視頻鏈接_1",
    "視頻鏈接_2",
    "視頻鏈接_3",
    ...以此類推
]

def play_video(url):
    # 導航到目標視頻頁面
    driver.get(url)

    # 等待播放按鈕加載
    wait = WebDriverWait(driver, 10)
    play_button = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "xt_video_bit_play_btn")))

    # 點擊播放按鈕
    play_button.click()

    # 等待視頻元素加載
    video_element = wait.until(EC.presence_of_element_located((By.TAG_NAME, "video")))

    # 監聽視頻結束事件
    driver.execute_script("""
        arguments[0].addEventListener('ended', function() {
            window.videoEnded = true;
        });
    """, video_element)

    # 等待視頻播放結束
    while not driver.execute_script("return window.videoEnded;"):
        sleep(1)

# 播放每個視頻
for url in video_urls:
    play_video(url)

sleep(10)

driver.quit()

接下來,運行該腳本即可
可以在命令行使用下列代碼運行腳本

python xxx.py

或者在前面提到的PyCharm或其他編輯器裏運行也可以

最後提醒:

在自動播放視頻期間,請不要點擊或操作該瀏覽器窗口的任何內容(包括最小化),否則在當前視頻播放完後,會暫停播放。
你仍然可以在電腦上進行任何操作,只需將其他窗口頁面遮蓋在瀏覽器窗口上即可。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.