前言
嗨喽,大家好呀~这里是爱看美女的茜茜呐
环境使用:
-
Python 3.8 解释器
-
Pycharm 编辑器
模块使用:
第三方模块:
-
import requests —> 数据请求模块 pip install requests
-
from selenium import webdriver
—> 自动测试模块 pip install selenium==3.141.0 <指定版本安装>
内置模块:
- import re
第三方模块安装方法:
win + R 输入cmd 输入安装命令 pip install 模块名
(如果你觉得安装速度比较慢, 你可以切换国内镜像源)
👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~
素材、视频教程、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可
思路分析
正常答题流程:
-
打开浏览器
-
访问网站
-
浏览题目
-
选择你认为正确答案
对于程序而言:
-
浏览题目
<获取题目答案 题库>
I. 获取所有题目以及答案
II. 答题过程中, 自动去获取本题的答案内容
每一个题目都有答案解析页面:
相当于页面ID --> 获取50个题目的ID 构建50个题目答案页面url地址
-
选择你认为正确答案
把答案和选项进行对比, 一样进行选择
代码展示:
from selenium import webdriver
# 导入数据请求模块
import requests
# 导入正则表达式
import re
"""
1. 打开浏览器
selenium --> 浏览器驱动 ---> 浏览器
"""
# <selenium.webdriver.chrome.webdriver.WebDriver (session="c55234aeab1503a9ab7ba8a4dd7bf457")>
driver = webdriver.Chrome()
# 访问网址
driver.get('https://www.jsyks.com/kms-mnks')
# 最大化浏览器
driver.maximize_window()
源码、解答、教程、资料加V:qian97378免费领
# 通过 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
# 对于选项进行处理 判断选择是否正确
# 源码、解答、教程、资料加V:qian97378免费领
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()
# 提交试卷 class_name 根据类名定位元素
driver.find_element_by_class_name('btn_JJ').click()
尾语
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。