知到刷课脚本全面解析

一、脚本简介

知到刷课脚本是一款基于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/n/368918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
SPXQWSPXQW
上一篇 2025-04-12 13:00
下一篇 2025-04-12 13:00

相关推荐

  • Python应用程序的全面指南

    Python是一种功能强大而简单易学的编程语言,适用于多种应用场景。本篇文章将从多个方面介绍Python如何应用于开发应用程序。 一、Web应用程序 目前,基于Python的Web…

    编程 2025-04-29
  • Python脚本控制其他软件

    Python作为一种简单易学、功能强大的脚本语言,具有广泛的应用领域,在自动化测试、Web开发、数据挖掘等领域都得到了广泛的应用。其中,Python脚本控制其他软件也是Python…

    编程 2025-04-29
  • Shell脚本与Python脚本的区别

    本文将从多个方面对Shell脚本与Python脚本的区别做详细的阐述。 一、语法差异 Shell脚本和Python脚本的语法存在明显差异。 Shell脚本是一种基于字符命令行的语言…

    编程 2025-04-29
  • Python zscore函数全面解析

    本文将介绍什么是zscore函数,它在数据分析中的作用以及如何使用Python实现zscore函数,为读者提供全面的指导。 一、zscore函数的概念 zscore函数是一种用于标…

    编程 2025-04-29
  • 全面解读数据属性r/w

    数据属性r/w是指数据属性的可读/可写性,它在程序设计中扮演着非常重要的角色。下面我们从多个方面对数据属性r/w进行详细的阐述。 一、r/w的概念 数据属性r/w即指数据属性的可读…

    编程 2025-04-29
  • Python计算机程序代码全面介绍

    本文将从多个方面对Python计算机程序代码进行详细介绍,包括基础语法、数据类型、控制语句、函数、模块及面向对象编程等。 一、基础语法 Python是一种解释型、面向对象、动态数据…

    编程 2025-04-29
  • Python自动化运维脚本

    Python自动化运维脚本是使用Python编写的代码,可以帮助管理员自动化执行繁琐、重复的操作任务。通过Python自动化运维脚本,管理员可以在更短的时间内完成工作,提高工作效率…

    编程 2025-04-28
  • Matlab二值图像全面解析

    本文将全面介绍Matlab二值图像的相关知识,包括二值图像的基本原理、如何对二值图像进行处理、如何从二值图像中提取信息等等。通过本文的学习,你将能够掌握Matlab二值图像的基本操…

    编程 2025-04-28
  • 使用Python图书馆抢座脚本的完整步骤

    本文将从多个方面详细介绍如何使用Python编写图书馆的座位抢占脚本,并帮助您快速了解如何自动抢占图书馆的座位,并实现您的学习计划。 一、开发环境搭建 首先,我们需要安装Pytho…

    编程 2025-04-28
  • 疯狂Python讲义的全面掌握与实践

    本文将从多个方面对疯狂Python讲义进行详细的阐述,帮助读者全面了解Python编程,掌握疯狂Python讲义的实现方法。 一、Python基础语法 Python基础语法是学习P…

    编程 2025-04-28

发表回复

登录后才能评论