iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现考试自动答题的脚本分享
  • 328
分享到

Python实现考试自动答题的脚本分享

Python实现考试自动答题Python考试自动答题Python自动答题 2023-03-19 18:03:45 328人浏览 八月长安

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

摘要

目录导语一、准备环境二、代码展示 三、效果展示导语 对于新手而言,掌握好方向盘的打法非常重要,关系到我们能否顺利通过驾考,拿到驾照。而开车时方向盘又是最重要的,握好方向盘等

导语

对于新手而言,掌握好方向盘的打法非常重要,关系到我们能否顺利通过驾考,拿到驾照。而开车时方向盘又是最重要的,握好方向盘等于是给自己的安全上了保险。 

科目一考试为上机考试,100道题,题型为判断题和单选题,以案例、图片及动画形式的题目为主,考试时间45分钟,90分及以上过关。

最近这段时间天气正正好,不冷不热,是学习考驾照的好时机。想学的宝子,最好是现在这个季节,要知道,当年(咳咳咳...)也就是前年我学驾照的时候夏天晒的乌漆嘛黑的。

许多驾考学员们,虽说科二科三需要实体练车,但是科一科四都是理论知识点,那不得一次过。平常的话****我们可以利用碎片化的时间巩固基础知识, 争取科科一次过!今天小编教大家一个小脚本啦——python实现自动答题 价值 1000元 外包订单项目案例。

一、准备环境

1)运行环境 

 开发环境:

python3PyCharm社区版。

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

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

 2)模块安装

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

一般安装:pip install +模块名 

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

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

二、代码展示 

1)爬虫实现思路

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

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

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

2.  分析这两个数据怎么获取    

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

第一题: 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
# 导入pandas
import pandas as pd
# 导入正则
import re

df = 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 requests
import re
import csv
import concurrent.futures
import parsel

def AnswerID():
    f = open('答案ID.txt', encoding='utf-8')
    answer_id_list = [answer_id for answer_id in f.read().split(',')]
    return answer_id_list


def 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_data


def 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 h1 b::text').getall()
    if len(answer) == 0:
        answer = selector.css('#question h1 u::text').get()

    AnswerDict = {
        'Problem': problem,
        'Answer': answer,
    }
    return AnswerDict


def 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)自动答题

​2)自动上交试卷

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

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

以上就是Python实现考试自动答题的脚本分享的详细内容,更多关于Python考试自动答题的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python实现考试自动答题的脚本分享

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实现考试自动答题的脚本分享
    目录导语一、准备环境二、代码展示 三、效果展示导语 对于新手而言,掌握好方向盘的打法非常重要,关系到我们能否顺利通过驾考,拿到驾照。而开车时方向盘又是最重要的,握好方向盘等...
    99+
    2023-03-19
    Python实现考试自动答题 Python考试自动答题 Python自动答题
  • Python如何实现考试自动答题功能
    这篇文章主要介绍“Python如何实现考试自动答题功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何实现考试自动答题功能”文章能帮助大家解决问题。一、准备环境1)运行环境 ...
    99+
    2023-07-05
  • 【源码可分享】教你用Python制作自动答题脚本,实现自动答题,100%正确率!
    文章目录 前言一、自动答题的原理二、自动答题的步骤三、Python实现自动答题的方法总结 前言 当今社会,人们的生活越来越依赖于计算机技术,而Python作为一种高级编程语言,已经成为了...
    99+
    2023-08-31
    python 开发语言 网络爬虫 编程
  • Python实现自动玩连连看的脚本分享
    目录序言实现步骤全部代码序言 最近女朋友在玩连连看,玩了一个星期了还没通关,真的是菜。 我实在是看不过去了,直接用python写了个脚本代码,一分钟一把游戏。 快是快,就是联网玩容易...
    99+
    2024-04-02
  • Python实现校园网自动登录的脚本分享
    目录背景思路技术点碎碎念代码背景 我在的学校校园网登录是web式的,即随便打开一个网页就会自动跳转到登录页面,然后输入用户名密码,点登录,便可以上网了。 但这种登录方式有个缺点:登录...
    99+
    2024-04-02
  • 4个的Python自动化脚本分享
    目录1、将 PDF 转换为音频文件 2、从列表中播放随机音乐 3、不再有书签了 4、清理下载文件夹 前言: 大家平时有没有注意到你每天可能会执行许多的重复的任务,例如阅读 pdf、播...
    99+
    2024-04-02
  • 利用Python实现自动工作汇报的脚本分享
    目录一、写在开头二、需要什么三、模型训练四、数据处理和传输五、金融模型六、代码七、MIME八、SMTP九、放在一起一、写在开头 哈喽兄弟们 之前经常编写Python脚本来进行数据处理...
    99+
    2024-04-02
  • Python实现自动回复讨论功能的脚本分享
    目录好久不见实现过程一步拿捏讨论美图好久不见 写这篇文章只是想证明一下:本博主还在呼吸 许久未更,甚是想更呐~ 这段时间生活中充斥着各种事情,感觉每天都在忙忙碌碌,偶而停下疲惫的身躯...
    99+
    2024-04-02
  • Python自动化测试之登录脚本的实现
    目录环境准备1、安装selenium模块2、安装浏览器驱动器代码1、登录代码2、xpath定位元素标签环境准备 前提已经安装好python、pycharm,配置了对应的环境变量。 1...
    99+
    2023-02-23
    Python自动化登录 Python自动化测试登录
  • seleniumIDE自动化测试脚本的实现
    目录selenium IDE是干什么的selenium IDE环境的安装selenium IDE的使用selenium IDE是干什么的 Selenium IDE   是一...
    99+
    2024-04-02
  • 5个Python杀手级的自动化脚本分享
    目录1.文件传输脚本2.系统监控脚本3.Web 抓取脚本(最常用)4.电子邮件自动化脚本5. 密码管理器脚本Python 是一种功能强大的语言,广泛用于自动执行各种任务。无论您是开发...
    99+
    2023-01-29
    Python自动化脚本 Python自动化 Python 脚本
  • 自动备份MYSQL的linux脚本分享
    本篇内容主要讲解“自动备份MYSQL的linux脚本分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“自动备份MYSQL的linux脚本分享”吧! 这是我写的...
    99+
    2024-04-02
  • python实现自动抢课脚本
    自动抢课脚本使用手册 @danteking dating from 2021.12.7 and last updating at 2021.12.8 gitee仓库 github仓库 借助pyaut...
    99+
    2023-09-08
    python 脚本语言 图像识别
  • 十个简单使用的Python自动化脚本分享
    目录1.给照片添加水印2.检测文本文件的相似性3.对文件内容进行加 密4.将照片转换为PDF5.修改照片的长与宽6.对于照片的其他操作7.测试网速8.货币汇率的转换9.生成...
    99+
    2024-04-02
  • 分享5个方便好用的Python自动化脚本
    目录1、自动化阅读网页新闻2、自动生成素描草图3、自动发送多封邮件4、自动化数据探索5、自动桌面提示前言: 相比大家都听过自动化生产线、自动化办公等词汇,在没有人工干预的情况下,机器...
    99+
    2024-04-02
  • 如何在在线答题中实现试卷的自动批改和自动评分
    随着在线教育的发展,越来越多的教育机构选择将考试和测评的方式转移到在线平台上进行。在线答题平台不仅方便了学生的答题和查看成绩,也减轻了老师的工作负担。其中,自动批改和自动评分是在线答题平台的重要功能,可以大大提高试卷批改的效率和准确性。一、...
    99+
    2023-10-21
    在线答题 自动批改 自动评分
  • Python自动化测试之登录脚本如何实现
    今天小编给大家分享一下Python自动化测试之登录脚本如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。环境准备前提已经...
    99+
    2023-07-05
  • 分享4个方便且好用的Python自动化脚本
    目录前言1、自动化阅读网页新闻2、自动生成素描草图3、自动发送多封邮件4、自动化数据探索5、给大家分享一下自动化测试工具总结前言 相比大家都听过自动化生产线、自动化办公等词汇,在没有...
    99+
    2024-04-02
  • 分享十个超级实用事半功倍的Python自动化脚本
    在日常的工作学习当中,我们总会遇到各式各样的问题,其中不少的问题都是一遍又一遍简单重复的操作,不妨直接用Python脚本来自动化处理,今天小编就给大家分享十个Python高级脚本,帮助我们减少无谓的时间浪费,提高工作学习中的效率。给照片添加...
    99+
    2023-05-14
    Python 自动化脚本
  • 分享4个Python中的非常好用的自动化脚本
    目录照片压缩器图片水印抄袭检查器文件加解密这里有一些很棒的自动化脚本,你可以在你的 Python 项目中使用它们。在做项目的时候,我们需要一些现成的代码来帮助我们解决日常生活中的问题...
    99+
    2022-11-13
    Python自动化脚本 Python 自动化
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作