首页 > 编程语言 >用Python编写网页自动答题工具,满分轻松到手,你就是全班最靓的仔!

用Python编写网页自动答题工具,满分轻松到手,你就是全班最靓的仔!

时间:2023-07-12 13:45:20浏览次数:40  
标签:浏览器 答题 Python selenium 最靓 choose 答案 import

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

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

首先你需要准备这些

环境使用

Python 3.8 解释器
Pycharm  编辑器

 

模块使用

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

 

其它工具

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

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

自动答题工具: 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
# 文章不理解,我还录制了详细操作视频,跟源码一起打包好了
# 都放在这个Q裙了:708525271
from selenium import webdriver
# 导入数据请求模块
import requests
# 导入正则表达式
import re

 

打开浏览器

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

 

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')

 

发送请求

    # 请求链接
    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

 

解析数据

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

 

获取选项标签

bs = li.find_elements_by_css_selector('b')

 

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()

提交试卷

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

 

至此,咱们就可以愉快的进行自动答题了,还是挺简单的。

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

标签:浏览器,答题,Python,selenium,最靓,choose,答案,import
From: https://www.cnblogs.com/hahaa/p/17547266.html

相关文章

  • python安装教程
    1.下载安装python解释器:地址:https://www.python.org/downloads/release/python-372/(选择此项) 2.pycharm安装教程:安装地址:https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC ......
  • python3。1
          print('您拥有三次机会输入正确的账号和密码')print('三次输入错误,账号将被锁定')i=3whilei>0:user_name=input('请输入您的账号:')psw=input('请输入密码:')ifuser_name=='zy'andpsw=='666666':......
  • 解决python升级的具体操作步骤
    如何升级Python版本作为一名经验丰富的开发者,我将帮助你学习如何升级Python版本。在本文中,我将为你提供一个详细的步骤表格,并解释每一步应该做什么,并提供相应的代码示例。升级Python的步骤以下是升级Python版本的步骤:步骤描述步骤1确定当前Python版本步骤2下载......
  • python学习笔记:继承与超类
    与java类似,继承的出现是为了提高代码的重复利用率,避免多次输入同样的代码。而超类就是java中的父类。1.继承要指定超类,可在定义类时,在class语句中的类名后加上超类名基类就是超类,派生类就是子类格式classDog:# passclassBobo(Dog):#Dog类的子类 pass子类会......
  • Python爬取哔哩哔哩视频
    Python爬取哔哩哔哩视频一、环境准备我这里使用的是环境如下仅供参考:开发工具:pycharmpython环境:python-3.8.0依赖的包:shutil,os,re,json,choice,requests,lxml二、页面分析我在这里就拿前段时间非常火的马老师的视频来举例子吧。视频链接:https://www.bilibili.com/video/BV1Ef4......
  • python 的命令行参数使用ArgumentParser
    argparse是一个python模块,用途是:命令行执行选项、参数和子命令的解释importargparse #创建解释器parser=argparse.ArgumentParser()#添加参数parser.add_argument('-g','--good',choices=['yuwen','shuxue'])#'-g'代表短选项,在命令行输入-g和-good效果一样,作......
  • Linux下python脚本自启动和定时启动
    一、服务器开机自动运行用root权限编辑以下文件 sudovim/etc/rc.local 编辑启动脚本的命令地址 /usr/bin/python3/path/to/python>/path/to/log 二、定时启动编辑crontab文件 crontab-e 编辑命令 */30****/usr/bin/python3/path/to/python>>/path/to......
  • python 入门之机器学习
    一、什么是机器学习什么是机器学习?机器学习其实就是想让计算机像人一样思考而研发出的计算机理论,目前常用的机器学习有以下几种算法:监督学习supervisedlearning;非监督学习unsupervisedlearning;半监督学习semi-supervisedlearning;强化学习reinforcementlearning;......
  • python的pandas库读取SQL sever
    python的pandas库读取SQLsever有两种方法。一种使用pymssql,另一种使用sqlalchemy。只是将数据库中的表读为DataFrame,不进行修改等表操作。目录• python的pandas库读取SQLsever有两种方法。一种使用pymssql,另一种使用sqlalchemy。这里只是将数据库中的表读取为DataFrame,不进......
  • python 常用快捷键
    python常用快捷键最重要的快捷键ctrl+shift+A:万能命令行shift两次:查看资源文件新建工程第一步操作module设置把空包分层去掉,compactemptymiddlepackage设置当前的工程是utf-8,设置的Editor-->FileEncodings-->全部改成utf-8,注释ctrl+/:单行注释光标操作ctrl+a......