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

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

首先你需要准备这些

环境使用

Python 3.8 解释器

Pycharm 编辑器

 

模块使用

import requests ---> 数据请求模块 pip install requests

import re

from selenium import webdriver ---> 自动测试模块 pip install selenium==3.141.0 <指定版本安装>

 

其它工具

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

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

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

正常答题流程

打开浏览器

访问网站

浏览题目

选择你认为正确答案

对于程序而言3. 浏览题目<获取题目答案 题库>I. 获取所有题目以及答案II. 答题过程中, 自动去获取本题的答案内容每一个题目都有答案解析页面:https://tiba.jsyks.com/Post/9e209.htmhttps://tiba.jsyks.com/Post/d72d6.htmhttps://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

 

打开浏览器

#

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/>答案:(.*?)', 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()

 

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

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

查看原文