当前位置:   article > 正文

用Python编写自动答题工具,考试轻松满分!_python自动答题

python自动答题

最近自动答题的外包很多,来给大家分享一下如何用Python来实现自动答题。

好了话不多说,我们开始操作。

首先你需要准备这些

环境使用

Python 3.8 解释器  
Pycharm  编辑器  

  • 1
  • 2
  • 3

模块使用

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

  • 1
  • 2
  • 3
  • 4

其它工具

谷歌浏览器
谷歌浏览器驱动

驱动安装教程:谷歌浏览器

自动答题工具: selenium 自动化测试模块
selenium --> 模拟人的行为去操作浏览器

正常答题流程

  1. 打开浏览器

  2. 访问网站

  3. 浏览题目

  4. 选择你认为正确答案

对于程序而言
3. 浏览题目
<获取题目答案 题库>
I. 获取所有题目以及答案
II. 答题过程中, 自动去获取本题的答案内容
每一个题目都有答案解析页面:
https://tiba.jsyks.com/Post/9e209.htm
https://tiba.jsyks.com/Post/d72d6.htm
https://tiba.jsyks.com/Post/6f533.htm
相当于页面ID --> 获取50个题目的ID 构建50个题目答案页面url地址
4. 选择你认为正确答案
把答案和选项进行对比, 一样进行选择

代码实战

模块

# selenium 需要安装 pip install selenium==3.141.0  
from selenium import webdriver  
# 导入数据请求模块  
import requests  
# 导入正则表达式  
import re  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

打开浏览器

# <selenium.webdriver.chrome.webdriver.WebDriver (session="c55234aeab1503a9ab7ba8a4dd7bf457")>  
driver = webdriver.Chrome()  
# 访问网址  
driver.get('https://www.jsyks.com/kms-mnks')  
# 最大化浏览器  
driver.maximize_window()  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

selenium 获取数据

# 通过 CSS 选择器查找元素  
lis = driver.find_elements_by_css_selector('div.Exam ul li')  
# for循环遍历  
for li in lis:  
    # get_attribute 获取标签属性  
    answer_id = li.get_attribute('c')  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

发送请求

    # 请求链接  
    link = f'https://tiba.jsyks.com/Post/{answer_id}.htm'  
    # 模拟 伪装浏览器 <请求头>  
    headers = {  
        # User-Agent 用户代理 表示浏览器基本身份信息  
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'  
    }  
    # 发送请求, 获取响应文本数据  
    html_data = requests.get(link, headers=headers).text
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

解析数据

answer = re.findall('br/>答案:<u>(.*?)</u>', html_data)[0]  

  • 1
  • 2

获取选项标签

bs = li.find_elements_by_css_selector('b')  

  • 1
  • 2

for循环遍历

for b in bs:  
    # 获取选项内容  
    choose = b.text  
    # 对于选项进行处理 判断选择是否正确  
    if choose == '正确':  
        # 重新赋值为对  
        choose = '对'  
    elif choose == '错误':  
        choose = '错'  
    # len内置函数, 统计元素个数  
    elif len(choose) > 2: # 判断当选项内容元素大于2的时候  
        # [0] 根据索引位置取值, 提取第一个元素  
        choose = choose[0]  
    for a in answer:  
        # 当选项和答案相等时候, 进行点击操作  
        if choose == a:  
            b.click()  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

提交试卷

driver.find_element_by_class_name('btn_JJ').click()  

  • 1
  • 2

至此,咱们就可以愉快的进行自动答题了,还是挺简单的,如果不会操作,我有详细操作视频,跟源码一起打包好了。

直接扫码领取

在这里插入图片描述

好了,今天的分享就到这里结束了,咱们下次再见!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/880568
推荐阅读
相关标签
  

闽ICP备14008679号