介绍:
使用Python和DrissionPage模块编写自动化脚本,以模拟人的行为访问网站并获取题目答案进行自动答题。这个脚本似乎是为答题网站设计的,通过监控特定数据包地址来获取题目答案,并模拟点击正确答案进行答题。
代码中的逻辑包括:
-
导入DrissionPage模块来操作浏览器页面。
-
打开浏览器并监听数据包地址,访问答题页面。
-
循环答题,等待数据包加载,获取答案数据,点击正确答案并进入下一题。
请确保在运行这段代码之前,您已经安装了Python 3.10解释器、PyCharm编辑器,以及所需的模块(DrissionPage和requests)。
准备工作:
使用DrissionPage模块中的ChromiumOptions类来设置Chrome浏览器的下载路径。通过将Chrome浏览器的下载路径设置为特定路径,您可以自定义文件下载的默认保存位置。
在代码中:
-
使用
from DrissionPage import ChromiumOptions
导入ChromiumOptions类。 -
然后,设置Chrome浏览器的下载路径为指定的路径(在这里是
C:\Program Files\Google\Chrome\Application\chrome.exe
)。 -
最后,调用
.save()
方法保存设置。
这个步骤可以帮助您在自动化测试或网页操作过程中控制Chrome浏览器的下载文件保存位置。
from DrissionPage import ChromiumOptions
path = r'C:\Program Files\Google\Chrome\Application\chrome.exe' # 改为你电脑chrome浏览器路径
ChromiumOptions().set_download_path(path).save()
"""
模块使用
DrissionPage -> pip install DrissionPage 安装模块
requests -> pip install requests
打开浏览器 模拟人的行为访问大体网站
获取题目答案
答案和选项对比 选择正确答案
下一题继续答题,直到答题结束
"""
# 导入自动化模块
from DrissionPage import ChromiumPage
# 打开浏览器
dp = ChromiumPage()
# 监听答案的数据包地址
dp.listen.start('tkdata.mnks.cn/ExamData')
# 访问答题页面
dp.get('https://www.jsyks.com/kms-sxlx')
# 循环答题
for page in range(1,101):
# 等待数据包加载
resp=dp.listen.wait()
# 直接获取答案数据包内容
json_data= resp.response.body
# print(json_data) 检验数据包内容获取成功
# 直接获取答案内容
answer_info = json_data['da']
for answer in answer_info:
if answer=='对':
answer='Y'
elif answer == '错':
answer='N'
"""
进行答题操作
-- 元素定位方法,找到答案按钮标签位置 ->在进行答题操作
判断题
对选题
"""
# 进行答题操作
dp.ele(f'css:#btn{answer}').click()
# 点击进入下一题操作
dp.ele('css:#btn_PN span').click()
查询下一页的按钮的元素 F12
过程中会遇到几个问题:(代码已处理)
判断题
选择题