【开学作业考试层出不穷】Python自动答题脚本,在线答题,零基础可学!!(附源码)

news2024/11/26 4:39:26

前言

大家好 我是小曼呐~
9月份想必大部分同学已经开学啦,开学少不了老师会布置一些 软件上面的作业 今天教大家用python制作自动答题脚本,100%准确率哦~
喜欢的同学记得关注 收藏哦~
在这里插入图片描述

环境使用

  • Python 3.8
  • Pycharm

模块使用

  • import requests —> 数据请求模块 pip install requests
  • import parsel —> 数据解析模块 pip install parsel
  • from selenium import webdriver —> 自动测试模块 pip install selenium==3.141.0

本次案例代码实现思路:

1.打开考试网站
selenium --> 浏览器驱动 --> 操作浏览器 <模拟人的行为做操作浏览器>
2.获取答案
获取答案网站链接 获取问题以及答案内容
3.对比题目以及答案 选出正确答案
获取问题答案选项
和正确的答案进行对比
如果正确答案和选择答案一致, 那就进行点击
4.进行点击答题

最终效果
在这里插入图片描述

代码实现

导入模块

源码获取可以加一下wx:‍python10010 发送验证时记得备注 “M”噢 
from selenium import webdriver
# 导入数据请求模块
import requests
# 导入数据解析模块
import parsel

打开浏览器 webdriver.Chrome(‘驱动路径’)

1.驱动和代码放在一起
2.驱动文件和python安装目录放在一起

driver = webdriver.Chrome(r'D:\download\anaconda\chromedriver.exe')
# 设置全屏
driver.maximize_window()

输入网址

driver.get('https://www.jsyks.com(mm)/kmy-mnks')

获取问题及答案

lis = driver.find_elements_by_css_selector('div.Exam ul li')
page = 1
# for循环遍历, 提取列表里面的元素
for li in lis:
    # 获取属性
    answer_id = li.get_attribute('c')  #  答案链接的ID
    # https://tiba.jsyks.com/Post/8f0e0.htm
    answer_url = f'https://tiba.jsyks.com/Post/{answer_id}.htm'
    # 获取答案以及问题  --> <Response [200]> 表示请求成功
    response = requests.get(url=answer_url)
    # 获取网页内容 --> 提取答案以及问题内容  转换数据类型
    selector = parsel.Selector(response.text)
    # 获取问题 --> 把问题和答案保存数据库保存 直接比较答案, 自己建立问题库, 从问题找答案
    question = selector.css('#question h1 strong a::text').get()
    # 获取答案
    answer = selector.css('#question h1 u::text').get()

点击判断

if answer == '错':
    # 把答案内容改成 错误  重新赋值一下
    answer = '错误'
#  # 如果答案内容是对的话
elif answer == '对':
    # 把答案内容改成正确重新赋值一下
    answer = '正确'
# 获取问题选项内容 --> b标签 全部获取下来  b标签是在li标签里面  driver 表示整个网页
bs = li.find_elements_by_css_selector('b')
num = 1
for b in bs:
    # 获取b标签文本
    choose = b.text
    # 判断如何答案比两个元素多的, 就取一个元素
    if len(choose) > 2:
        # [0]提取 字符串里面第一个元素
        choose = choose[0]
    # 进行对比 选项和答案一致 是否一模一样
    if choose == answer:
        # 点击选项 --> 定位到点击那个元素 LI1 --> 1 表示第一题  b:nth-child(3) 表示第一个答案
        driver.find_element_by_css_selector(f'#LI{page} b:nth-child({2+num})').click()
        print('点击了')
    else:
        print('选项是', choose, '答案是', answer)
    print(choose)
    num +=1
page += 1

点击提交试卷

如果过快,可能程序还没找到元素 <网页还没加载元素出来, 你就直接点了, 可能报错>

driver.find_element_by_css_selector('div.ExamBtn u.btnJJ').click()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/969682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL表的内连和外连

文章目录 MySQL表的内连和外连1. 内连接(1) 显示SMITH的名字和部门名称 2. 外连接2.1 左外连接(1) 查询所有学生的成绩&#xff0c;如果这个学生没有成绩&#xff0c;也要将学生的个人信息显示出来 2.2 右外连接(1) 对stu表和exam表联合查询&#xff0c;把所有的成绩都显示出来…

【Apollo学习笔记】——规划模块TASK之SPEED_BOUNDS_PRIORI_DECIDERSPEED_BOUNDS_FINAL_DECIDER

文章目录 前言SPEED_BOUNDS_PRIORI_DECIDER功能简介SPEED_BOUNDS_FINAL_DECIDER功能简介SPEED_BOUNDS_PRIORI_DECIDER相关配置SPEED_BOUNDS_FINAL_DECIDER相关配置SPEED_BOUNDS_DECIDER流程将障碍物映射到ST图中ComputeSTBoundary(PathDecision* path_decision)ComputeSTBounda…

MybatisPlus 快速入门 常见注解 配置

var code "81563903-534d-4850-9d6a-a9fb0318f593" 本课程全面讲解了Mybatis框架的使用&#xff0c;从快速入门到原理分析再到实战应用。每一个知识点都有案例进行演示学习&#xff0c;最终通过学习你将全面掌握&#xff0c;从而使Mybatis的开发更加的高效&#xff…

网络编程 day 6

1、基于UDP聊天室 服务器 #define ERR_MSG(msg) do{\fprintf(stderr,"__%d__",__LINE__);\perror(msg);\ }while(0) #define IP "127.0.0.1" #define PORT 6666 //创建链表 Linklistptr list_create(); Linklistptr node_buy(datatype e); int list_insert…

You must install at least one postgresql-client-<version> package

使用主机上的映射端口来连接到 PostgreSQL 数据库。例如&#xff0c;使用以下命令连接到数据库&#xff1a; psql -h localhost -p 5432 -U postgres出现下面的问题&#xff1a; 分析&#xff1a; 如果您在运行 psql 命令时遇到错误消息 You must install at least one pos…

flex布局轻而易举实现页面布局;超详细解析轻松掌握

我们曾如此渴望命运的波澜&#xff0c;到最后才发现&#xff0c;人生最曼妙的风景&#xff0c;竟是内心的淡定和从容。我们曾如此期盼外界的认可&#xff0c;到最后才知道&#xff0c;世界是自己的&#xff0c;与他人毫无关系。——杨绛 开始 痛点 网页布局&#xff08;layout…

数据分析因子评分学习

当多个因素影响一个结果时&#xff0c;我们需要综合考虑这些因素分别对结果德影响。因子评分就是用于比较其对结果德影响程度。 文章目录 前言一、案例背景二、解决方案&#xff08;一&#xff09;分析思路&#xff08;二&#xff09;剔除无关数据&#xff08;三&#xff09;求…

role、user、schema在Oracle、MySQL、PostgreSQL的区别

0.先上结论 数据库逻辑可以细分为&#xff1a;角色、用户、数据库、模式PostgreSQL和MySQL合并了角色和用户&#xff0c;MySQL还合并了数据库、模式Oracle合并了用户、数据库、模式 1.图 1.1.架构 1.2.用户和角色 1.2.1.PostgreSQL 1.2.2.MySQL 1.2.3.Oracle 参考文章 数据…

安卓绘制原理概览

绘制原理 Android 程序员都知道 Android 的绘制流程分为 Measure、Layout、Draw 三步骤&#xff0c;其中 Measure 负责测量 View 的大小Layout 负责确定 View 的位置Draw 负责将 View 画在屏幕上 由 ViewRootImpl 实现的 performTraversal 方法是 Measure、layout、draw 的真正…

教育培训小程序的设计与功能解析

随着互联网的发展&#xff0c;线上教育逐渐成为一种趋势&#xff0c;越来越多的人开始选择在线学习。而搭建一个适合自己的线上教育小程序&#xff0c;可以为教育机构或个人提供更好的教学和学习体验。在本文中&#xff0c;我们将介绍如何通过一个第三方制作平台来搭建在线教育…

【Maven教程】(五)仓库:解析Maven仓库—布局、分类和配置,远程仓库的认证与部署,快照版本,依赖解析机制,镜像和搜索服务 ~

Maven 仓库 1️⃣ 什么是Maven仓库2️⃣ 仓库的布局3️⃣ 仓库的分类3.1 本地仓库3.2 远程仓库3.3 中央仓库3.4 私服 4️⃣ 远程仓库的配置4.1 远程仓库的认证4.2 部署至远程仓库 5️⃣ 快照版本6️⃣ 从仓库解析依赖的机制7️⃣ 镜像8️⃣ 仓库搜索服务8.1 Sonatype Nexus8.2…

大白菜清理电脑密码教程

首先安装大白菜&#xff1a; 插入u盘一键制作启动盘 制作成功&#xff0c;重启进入u盘启动模式

监控平台 - zabbix

目录 一、概述 二、搭建 一、概述 1. zabbix程序结构 zabbix-server&#xff1a;用于数据处理及写入到数据库 zabbix-agent&#xff1a;用于获取被监控端的性能检测数据 zabbix-web&#xff1a;用于数据的展示及远程操控 数据库&#xff1a;用于存储监控数据 zabbix-pr…

夜神模拟器进行APP抓包

夜神模拟器进行APP抓包 1、fiddler安装和配置1.1配置fiddler允许监听到https1.2配置fiddler允许远程连接1.3重启Fiddler&#xff08;配置完成后需要重启才能生效&#xff09; 2、安装夜神模拟器&#xff0c;并配置代理2.1打开模拟器wifi&#xff0c;修改网络代理2.2打开内置浏览…

基于深度学习网络的人员吸烟行为检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 clc; clear; close all; warning off; addpath(genpath(pwd)); rng(default)load FRCNN.mat I…

忧郁菇的介绍

前言 此文章为“植物大战僵尸”专栏中的第006刊&#xff08;2023年9月五刊&#xff09;。 无名版中有很多紫卡植物&#xff0c;分别是忧郁菇、玉米加农炮、猫尾草、机枪射手、地刺王、冰西瓜投手、双子向日葵、吸金菇。 提示&#xff1a; 1.用于无名版&#xff1b; 2.用于…

(数字图像处理MATLAB+Python)第十一章图像描述与分析-第七、八节:纹理描述和其他描述

文章目录 一&#xff1a;纹理描述&#xff08;1&#xff09;联合概率矩阵法A&#xff1a;定义B&#xff1a;基于联合概率矩阵的特征C&#xff1a;程序 &#xff08;2&#xff09;灰度差分统计法A&#xff1a;定义B&#xff1a;描述图像特征的参数 &#xff08;3&#xff09;行程…

(16)线程的实例认识:Await,Async,ConfigureAwait

继续(15)的例子 一、ConfigureAwait()的作用 private async void BtnAsync_Click(object sender, EventArgs e)//异步{Stopwatch sw Stopwatch.StartNew();TxtInfo.Clear();AppendLine("异步检索开始...");AppendLine($"当前线程Id:{Environment.CurrentManage…

Golang复习

文章目录 golang的特点golang数据类型基本数据类型&#xff08;值类型&#xff09;引用数据类型 make和newmakenew 浅拷贝&#xff0c;深拷贝深拷贝&#xff1a;实现深拷贝的方式&#xff1a;浅拷贝&#xff1a;实现浅拷贝的方式 接口接口是什么 某种类型可以比较吗channel数据…

flutter 里面自定义appbar

众所周知&#xff0c;fluuter里面的appbar 包含title&#xff0c; leading&#xff0c;action, bottom 如果我想在appbar里面自定一些内容&#xff0c;他会默认继承appbar的高度&#xff0c;且位置也没法自定义&#xff0c;如下图 这个时候我该怎么办? 在appbar里面将下面的内…