Python 自动评分程序 - 内蒙古开放大学

本程序使用 Python 编写,利用 Selenium 库自动完成内蒙古开放大学平台的在线评分。程序提供了简单的图形界面,可设定评分次数,并实时显示评分进度。

程序功能

  • 自动登录内蒙古开放大学平台
  • 自动评分,随机生成 94-99 分之间的分数
  • 设定评分次数
  • 显示评分进度
  • 提供开始/停止按钮

代码示例

import os
import time
import random
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import tkinter as tk


class App:
    def __init__(self, master):
        self.master = master
        master.title("自动评分程序")

        self.label = tk.Label(master, text="请输入评分次数:")
        self.label.pack()

        self.entry = tk.Entry(master)
        self.entry.pack()

        self.start_button = tk.Button(master, text="开始运行", command=self.start)
        self.start_button.pack()

        self.stop_button = tk.Button(master, text="停止运行", command=self.stop, state=tk.DISABLED)
        self.stop_button.pack()

        self.progress_label = tk.Label(master, text="")
        self.progress_label.pack()

        self.browser = None
        self.is_running = False
        self.total_scores = 0
        self.current_score = 0

    def start(self):
        if self.is_running:
            return

        self.total_scores = int(self.entry.get())
        if self.total_scores <= 0:
            return

        if not self.check_browser():
            os.system(r'start chrome --remote-debugging-port=9527 --user-data-dir="D:\评阅用"')

        options = Options()
        options.add_experimental_option("debuggerAddress", "127.0.0.1:9527")
        self.browser = webdriver.Chrome(options=options)

        self.is_running = True
        self.start_button.config(state=tk.DISABLED)
        self.stop_button.config(state=tk.NORMAL)

        self.progress_label.config(text="正在评分:0/%d" % self.total_scores)

        while True:
            for handle in self.browser.window_handles:
                self.browser.switch_to.window(handle)
                if '内蒙古开放大学' in self.browser.title:
                    print('用户登录成功!')
                    break
            else:
                time.sleep(1)
                continue
            break

        while self.is_running and self.current_score < self.total_scores:
            try:
                score_box = self.browser.find_element(By.CLASS_NAME, 'score-box')
                score_input = score_box.find_element(By.TAG_NAME, 'input')
                score_input.clear()
                score_input.send_keys(str(random.randint(94, 99)))
                time.sleep(1)
                submit_button = self.browser.find_element(By.CLASS_NAME, 'nav-text')
                submit_button.click()
                time.sleep(2)

            except:
                continue
            else:
                if '已到最后' in self.browser.page_source:
                    print('已到最后,暂停程序')
                    break
                self.current_score += 1
                self.progress_label.config(text="正在评分:%d/%d" % (self.current_score, self.total_scores))
                time.sleep(1)

        self.is_running = False
        self.start_button.config(state=tk.NORMAL)
        self.stop_button.config(state=tk.DISABLED)

    def stop(self):
        self.is_running = False
        self.start_button.config(state=tk.NORMAL)
        self.stop_button.config(state=tk.DISABLED)

    def check_browser(self):

        #检查是否已经打开了浏览器
        try:
            options = Options()
            options.add_experimental_option("debuggerAddress", "127.0.0.1:9527")
            browser = webdriver.Chrome(options=options)
            browser.execute_script("return true")
            return True
        except:
            return False


if __name__ == '__main__':
    root = tk.Tk()
    app = App(root)
    root.mainloop()

使用方法

  1. 安装 Python 和 Selenium 库
pip install selenium
  1. 下载 ChromeDriver 浏览器驱动,并将其添加到系统环境变量 PATH 中

  2. 运行程序

  3. 在程序界面中输入评分次数,并点击 "开始运行" 按钮

注意

  • 程序需要在浏览器开启调试模式的情况下运行,具体方法请参考 ChromeDriver 文档
  • 程序仅供学习参考,请勿用于任何违法或不道德的行为
  • 程序代码可能需要根据内蒙古开放大学平台的具体情况进行调整

联系方式

如果您在使用程序过程中遇到任何问题,欢迎联系我。

免责声明

本程序仅供参考,使用本程序带来的任何后果由用户自行承担。作者不对本程序的使用造成任何损失负责。

Python 自动评分程序 - 内蒙古开放大学

原文地址: https://www.cveoy.top/t/topic/fYyt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录