返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何实现考试自动答题功能
  • 761
分享到

Python如何实现考试自动答题功能

2023-07-05 13:07:15 761人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python如何实现考试自动答题功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何实现考试自动答题功能”文章能帮助大家解决问题。一、准备环境1)运行环境 

这篇文章主要介绍“python如何实现考试自动答题功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何实现考试自动答题功能”文章能帮助大家解决问题。

一、准备环境

1)运行环境 

 开发环境:

python3PyCharm社区版。

import requests  ---> 数据请求模块 pip install requests  import refrom selenium import WEBdriver ---> 自动测试模块 pip install selenium==3.141.0  <指定版本安装>。

谷歌浏览器 以及 谷歌驱动 <版本和浏览器版本相对应> 环境没有安装的同学, 可以去安装。

 2)模块安装

第三方库的安装方式如下: 

一般安装:pip install +模块名 

镜像源安装:pip install -i pypi.douban.com/simple/+模块名&hellip;

 (还有很多国内镜像源,这里是豆瓣的用习惯了,其他镜像源可以去看下之前文章都有的)

二、代码展示 

1)爬虫实现思路

一. 数据来源分析 --> 通过浏览器 开发者工具 抓包分析    

明确需求:        - 明确采集的网站是什么            

题目答案页面: https://tiba.jsyks.com/Post/2c15b.htm

 分析这两个数据怎么获取    

数据来自于 --> 答案页面 

第一题: Https://tiba.jsyks.com/Post/2c15b.htm    

问题: 获取1701道题目 --> 分析每个题目答案页面URL构成        

第一题: https://tiba.jsyks.com/Post/2c15b.htm        

第二题: https://tiba.jsyks.com/Post/8ac1a.htm       

 第三题: https://tiba.jsyks.com/Post/e97d7.htm    2c15b / 8ac1a / e97d7    

所以 只需要获取所有答案页面ID, 即可获取所有题库 。

2)自动答题主程序

# 导入自动化测试模块 --> 重点 3.141.0 版本from selenium import webdriver# 导入pandasimport pandas as pd# 导入正则import redf = pd.read_csv('题库.csv')key = []value = []# 获取每一道题目for i in df['Problem']:  # 问题作为键    # 把题目添加到列表里面    key.append(i)# 获取每一道题目答案for j in df['Answer']: # 问题作为值    # 把答案添加到列表里面    value.append(j)# 把两个列表合并成字典dic = dict(zip(key, value))"""1. 打开浏览器    Chrome 浏览器 谷歌    webdriver.Chrome('驱动路径')    I. 驱动选择        根据你自己浏览器版本, 选择驱动版本, 最相近即可        驱动只有32    II. 驱动路径写法        1. 不写路径            - 驱动和你代码在一起            - 驱动和你python安装目录在一起        2. 写路径 绝对路径"""driver = webdriver.Chrome()# 2. 访问网站driver.get('https://www.jsyks.com/kms-fzks')driver.maximize_window()"""答题操作:    1. 题库 <获取出来了>        读取csv文件, 把题目内容以及答案读取出来1701道题,要读1701次啊?    可以把问题作为字典键, 答案作为字典值    根据问题, 可以获取答案定位元素, 获取数据内容"""print(dic)for page in range(50):    Questions = driver.find_element_by_CSS_selector('#ExamTit').text    # \d+ 匹配数字 获取题目    Question = re.findall('\d+. (.*)', Questions)[0]    answer = dic[Question]    # 多选题, 答案肯定大于1    if len(answer) == 1:        # 判断答案内容 选择选项        if answer == '对':            # 定位对元素, 进行点击操作            driver.find_element_by_css_selector('#TX1 #btnDa11').click()        elif answer == '错':            driver.find_element_by_css_selector('#TX1 #btnDa12').click()        elif answer == 'A':            driver.find_element_by_css_selector('#TX2 #btnDa21').click()        elif answer == 'B':            driver.find_element_by_css_selector('#TX2 #btnDa22').click()        elif answer == 'C':            driver.find_element_by_css_selector('#TX2 #btnDa23').click()        elif answer == 'D':            driver.find_element_by_css_selector('#TX2 #btnDa24').click()        # 点击下一题        driver.find_element_by_css_selector('#actArea #btnNext2').click()    elif len(answer) > 1:        # 多选        for x in answer:            if x == 'A':                driver.find_element_by_css_selector('#TX2 #btnDa21').click()            elif x == 'B':                driver.find_element_by_css_selector('#TX2 #btnDa22').click()            elif x == 'C':                driver.find_element_by_css_selector('#TX2 #btnDa23').click()            elif x == 'D':                driver.find_element_by_css_selector('#TX2 #btnDa24').click()        driver.find_element_by_css_selector('#actArea #btnNext2').click()driver.find_element_by_css_selector('#actArea #btnNext3').click()driver.find_element_by_css_selector('#Tip_Msg span input:nth-child(1)').click()

3)题库主程序

import requestsimport reimport csvimport concurrent.futuresimport parseldef AnswerID():    f = open('答案ID.txt', encoding='utf-8')    answer_id_list = [answer_id for answer_id in f.read().split(',')]    return answer_id_listdef GetResponse(html_url):    headers = {        'User-Agent': 'Mozilla/5.0 (windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'    }    html_data = requests.get(url=html_url, headers=headers).text    return html_datadef GetContent(AnswerID):    AnswerUrl = f'https://tiba.jsyks.com/Post/{AnswerID}.htm'    html_data = GetResponse(html_url=AnswerUrl)    selector = parsel.Selector(html_data)    problem = selector.css('#question a::text').get()    answer = selector.css('#question h2 b::text').getall()    if len(answer) == 0:        answer = selector.css('#question h2 u::text').get()    AnswerDict = {        'Problem': problem,        'Answer': answer,    }    return AnswerDictdef main(page):    AnswerDict = GetContent(AnswerID=page)    csv_writer.writerow(AnswerDict)    print(AnswerDict)if __name__ == '__main__':    # GetContent(AnswerID='8502e')    answer_id_list = AnswerID()    f = open('科目四题库.csv', mode='a', encoding='utf-8', newline='')    csv_writer = csv.DictWriter(f, fieldnames=['Problem', 'Answer'])    csv_writer.writeheader()    exe = concurrent.futures.ThreadPoolExecutor(max_workers=7)    for answer_id in answer_id_list:        exe.submit(main, answer_id)    exe.shutdown()

三、效果展示

1)自动答题

Python如何实现考试自动答题功能

2)自动上交试卷

Python如何实现考试自动答题功能

很多人问为什么只有96分没得100分?

因为题库下载的题目答案是错误的修正之后就可以啦!

关于“Python如何实现考试自动答题功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Python如何实现考试自动答题功能

本文链接: https://lsjlt.com/news/351911.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python如何实现考试自动答题功能
    这篇文章主要介绍“Python如何实现考试自动答题功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何实现考试自动答题功能”文章能帮助大家解决问题。一、准备环境1)运行环境 ...
    99+
    2023-07-05
  • Python实现考试自动答题的脚本分享
    目录导语一、准备环境二、代码展示 三、效果展示导语 对于新手而言,掌握好方向盘的打法非常重要,关系到我们能否顺利通过驾考,拿到驾照。而开车时方向盘又是最重要的,握好方向盘等...
    99+
    2023-03-19
    Python实现考试自动答题 Python考试自动答题 Python自动答题
  • 如何利用ChatGPT和Python实现自动问答功能
    如何利用ChatGPT和Python实现自动问答功能引言:随着自然语言处理和人工智能的快速发展,自动问答系统成为各个领域中的热门应用之一。通过使用ChatGPT和Python,我们可以快速实现一个自动问答系统,从而提供高效的问答服务。本文将...
    99+
    2023-10-25
    ChatGPT - ChatGPT 自动问答 - Auto QA Python - Python编程
  • JavaScript如何实现答题评分功能
    这篇“JavaScript如何实现答题评分功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript如何实现答题...
    99+
    2023-07-06
  • Vue实现答题功能
    1、请求答题接口 2、判断用户是否答对,答对的话跳到下一题,答错的话弹窗告诉用户有错题,请重新答题 <div class="active_title"> ...
    99+
    2024-04-02
  • python利用opencv如何实现答题卡自动判卷
    目录1、设定答题卡模板2、读取答题卡图像并对图像进行灰度化处理3、高斯模糊图像去噪点4、使用大津法二值分割图像5、使用开运算去噪点6、使用canny边缘检测算法7、筛选答题区域轮廓,透视变换矫正目标区域使用摄像头实时...
    99+
    2022-06-02
    python opencv答题卡 python答题卡识别 python答题系统
  • 如何在在线答题中实现试卷的自动批改和自动评分
    随着在线教育的发展,越来越多的教育机构选择将考试和测评的方式转移到在线平台上进行。在线答题平台不仅方便了学生的答题和查看成绩,也减轻了老师的工作负担。其中,自动批改和自动评分是在线答题平台的重要功能,可以大大提高试卷批改的效率和准确性。一、...
    99+
    2023-10-21
    在线答题 自动批改 自动评分
  • CSS+jQuery如何实现的在线答题功能
    小编给大家分享一下CSS+jQuery如何实现的在线答题功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图:HTML首先载...
    99+
    2024-04-02
  • 如何使用OpenCV-Python实现识别答题卡判卷功能
    这篇文章主要为大家展示了“如何使用OpenCV-Python实现识别答题卡判卷功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用OpenCV-Python实现识别答题卡判卷功能”这篇文章...
    99+
    2023-06-22
  • python自动化测试面试题与答案有哪些
    本篇内容主要讲解“python自动化测试面试题与答案有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python自动化测试面试题与答案有哪些”吧!1、什么项目适合做自动化测试?关键字:不变的...
    99+
    2023-07-05
  • Python如何实现12306自动抢火车票功能
    这篇文章将为大家详细讲解有关Python如何实现12306自动抢火车票功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、效果展示在正式进入代码讲解之前,先来看下本文的实现效果。如果不是为了演示效果,直...
    99+
    2023-06-22
  • 如何实现在线答题中的答题过程实时记录和评估功能
    随着互联网技术的不断发展,教育领域也逐渐朝着在线学习的方向发展。在线答题是一种常见的在线学习方式,同时也是一种常见的教育评估方法。在传统的在线答题中,教师只能通过答案最后提交的时间来判断学生的答题情况,无法得知学生在答题过程中的具体表现。因...
    99+
    2023-10-21
    记录器 分数 实时记录:记录 实时记录 评估功能:评估
  • 如何使用CSS+jQuery实现的在线答题功能
    小编给大家分享一下如何使用CSS+jQuery实现的在线答题功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!HTML首先载入j...
    99+
    2024-04-02
  • 如何实现在线答题中的倒计时功能
    随着互联网的快速发展和智能设备的普及,越来越多的教育活动也开始向线上迁移,其中包括在线答题。在线答题作为一种新型的教育形式,可以提供更加便捷和灵活的学习方式,受到了越来越多的使用者的青睐。其中一个重要的功能就是倒计时,在规定的时间内完成答题...
    99+
    2023-10-21
    实现 倒计时 在线答题
  • Vue如何实现自动触发功能
    目录实现自动触发功能自定义指令实现自动点击事件1.若是没有v-for循环2.若是有v-for循环实现自动触发功能 今天在项目中遇到一个问题,就是当页面加载的时候,我希望某个元素通过点...
    99+
    2024-04-02
  • 如何使用MongoDB实现数据的自动化测试功能
    如何使用MongoDB实现数据的自动化测试功能摘要:随着软件开发的不断发展,自动化测试已经成为了一项非常重要的工作。对于使用MongoDB作为后台数据库的项目来说,如何实现数据的自动化测试功能尤为重要。本文将介绍如何使用MongoDB来实现...
    99+
    2023-10-22
    MongoDB自动化测试 数据测试实现 使用MongoDB进行自动化测试
  • 基于Python如何实现微信自动回复功能
    这篇文章主要介绍“基于Python如何实现微信自动回复功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python如何实现微信自动回复功能”文章能帮助大家解决问题。实现自动回复的功能,我们需要...
    99+
    2023-07-02
  • 【源码可分享】教你用Python制作自动答题脚本,实现自动答题,100%正确率!
    文章目录 前言一、自动答题的原理二、自动答题的步骤三、Python实现自动答题的方法总结 前言 当今社会,人们的生活越来越依赖于计算机技术,而Python作为一种高级编程语言,已经成为了...
    99+
    2023-08-31
    python 开发语言 网络爬虫 编程
  • 微信小程序实现答题功能
    本文实例为大家分享了微信小程序实现答题功能的具体代码,供大家参考,具体内容如下 view <view class="topnav">   <image src="...
    99+
    2024-04-02
  • Spring Security如何实现自动登陆功能
    这篇文章主要介绍Spring Security如何实现自动登陆功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!当我们在登录像QQ邮箱这种大多数的网站,往往在登录按键上会有下次自动登录这个选项,勾选后登录成功,在一段...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作