一、腳本簡介
知到刷課腳本是一款基於Python開發的自動刷知到課程的腳本。該腳本可以自動登錄知到網站,自動選擇需要學習的課程,並自動完成視頻觀看和答題,最終獲得學分。該腳本具有高度的自動化程度,能夠較大程度地提高知識學習效率。
二、環境配置
為了正常運行知到刷課腳本,需要在本地環境中進行相關配置。
1、安裝Python環境;
sudo apt install python3
2、安裝必要的Python庫,包括Selenium和Pillow。
sudo pip3 install selenium
sudo pip3 install Pillow
三、核心代碼
3.1 自動登錄
def login_knowbox(username, password, driver):
url = "https://www.knowbox.cn/ssologin?v=4&return_url=https%3A%2F%2Fwww.knowbox.cn%2Fcourse%2Flearning-center%2F"
driver.get(url)
#獲取用戶名輸入框和密碼輸入框
element_user = driver.find_element_by_name("userName")
element_password = driver.find_element_by_name("password")
#向用戶名、密碼輸入框分別輸入用戶名、密碼
element_user.send_keys(username)
element_password.send_keys(password)
#點擊登錄按鈕
driver.find_element_by_css_selector(".submit").click()
#等待登錄成功
WebDriverWait(driver, 10).until(expected_conditions.presence_of_element_located((By.CLASS_NAME, "nav-list")))
3.2 自動選擇課程
def select_class(driver):
# 點擊進入學習頁面
driver.find_element_by_css_selector(".studyBtn").click()
# 延時等待
time.sleep(2)
# 點擊所有課程
driver.find_element_by_css_selector(".all-course").click()
# 延時等待
time.sleep(2)
# 點擊進入第一個課程
driver.find_element_by_css_selector(".single-course a").click()
# 延時等待
time.sleep(2)
3.3 自動觀看視頻
def watch_video(driver):
# 獲取視頻元素標籤
video = driver.find_element_by_tag_name("video")
# 獲取視頻總時長
total_time = driver.execute_script("return arguments[0].duration;", video)
# 開始播放視頻
driver.execute_script("arguments[0].play();", video)
start_time = time.time()
# 循環觀看視頻直至播放完畢
while time.time() - start_time < total_time:
# 間隔時間為5秒
time.sleep(5)
# 暫停視頻播放
driver.execute_script("arguments[0].pause();", video)
3.4 自動答題
def answer_questions(driver):
# 獲取題目元素標籤
questions = driver.find_elements_by_css_selector(".question")
# 循環答題
for question in questions:
# 獲取題目類型
q_type = question.get_attribute("data-type")
if q_type == "single_choice": # 單選題
# 獲取選項元素標籤
choices = question.find_elements_by_css_selector(".choice-item")
# 隨機選擇一個選項
random.choice(choices).click()
elif q_type == "multi_choice": # 多選題
# 獲取選項元素標籤
choices = question.find_elements_by_css_selector(".choice-item")
# 隨機選擇兩個選項
random_choices = random.sample(choices, 2)
for choice in random_choices:
choice.click()
elif q_type == "judge": # 判斷題
# 獲取選項元素標籤
choices = question.find_elements_by_css_selector(".choice-item")
# 隨機選擇一個選項
random.choice(choices).click()
else: # 填空題
# 獲取填空文本框元素標籤
input = question.find_element_by_css_selector(".freetext-input")
# 輸入隨機字符串
input.send_keys("".join(random.choices(string.ascii_letters + string.digits, k=10)))
四、腳本運行
在運行腳本之前,需要在代碼中添加如下信息:
- 需要學習的課程名稱;
- 知到網站的用戶名和密碼。
配置完成後即可運行腳本,自動完成知到刷課任務。
if __name__ == '__main__':
#更換成你的學校課程
course_name = "理綜物理課程"
#更改成你的知到網站賬號密碼
username = "your_username"
password = "your_password"
#啟動Chrome瀏覽器
driver = webdriver.Chrome()
#登錄知到網站
login_knowbox(username, password, driver)
#選擇課程並觀看視頻
select_class(driver)
watch_video(driver)
#答題
answer_questions(driver)
#關閉瀏覽器
driver.quit()
原創文章,作者:SPXQW,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/368918.html