使用python进行网站答题操作

介绍:

使用Python和DrissionPage模块编写自动化脚本,以模拟人的行为访问网站并获取题目答案进行自动答题。这个脚本似乎是为答题网站设计的,通过监控特定数据包地址来获取题目答案,并模拟点击正确答案进行答题。

代码中的逻辑包括:

  1. 导入DrissionPage模块来操作浏览器页面。

  2. 打开浏览器并监听数据包地址,访问答题页面。

  3. 循环答题,等待数据包加载,获取答案数据,点击正确答案并进入下一题。

请确保在运行这段代码之前,您已经安装了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

过程中会遇到几个问题:(代码已处理)

判断题

选择题

结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/555240.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

List实现(2)| LinkedList

参考:LinkedList 源码分析 在Java中,LinkedList是一个双向链表,实现了List和Deque接口,可以被当作列表(List)、队列(Queue)或者双端队列(Deque)使用。它允许…

[渗透测试学习] TwoMillion-HackTheBox

TwoMillion-HackTheBox 信息搜集 nmap扫描一下 nmap -sV -v 10.10.11.221扫描结果 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0) 80/tcp open http nginx 3851/tcp f…

LeetCode第797题: 所有可能的路径

目录 1.问题描述 2.问题分析 1.问题描述 给你一个有 n 个节点的有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)。 graph[i] 是一个从节点 i 可以访问的所有节点的列表&#xff08…

解决IDEA https://start.spring.io/连接不上

1.换成下边这个地址试试 https://start.springboot.io/2.换成阿里云试试,绝对可行,但是版本有点低 https://start.aliyun.com

使用Java调用音乐开放API,并进行播放

使用Java调用音乐开放API,并进行播放 背景描述 电脑没有下载音乐软件,使用网页播放又不太方便,所有就想着使用Java语言直接调用音乐开放API,然后进行播放音乐。 具体代码如下,包含了注释 package com.lowkey.comple…

python学习笔记B-06:序列结构之列表--列表的创建和删除

序列结构主要有列表、元组、字典、集合和字符串,列表是要学习的第一种序列结构。下面是列表的创建和删除方法。 import random #导入一个随机数发生器 print("创建列表方法1:直接列表名,等号,方括号中间内容用逗号隔开&quo…

基于小程序实现的精准扶贫数据收集系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:ssm 【…

python将xml格式文件转成png或者pdf格式

本文主要介绍运行NCCL代码时输出的xml文件该如何转成更加容易观看的图格式 如下是举例&#xff0c;服务器上的PCIE相关的topo xml 文件 <system version"1"><cpu numaid"1" affinity"ffffff00,0000ffff,ff000000" arch"x86_64&q…

AWB学习记录

主要参考食鱼者博客&#xff1a;https://blog.csdn.net/wtzhu_13/article/details/119301096&#xff0c;以及相关的论文&#xff0c;感谢食鱼者老师整理分享。 灰度世界和完全反射 灰度世界法和完全反射法分别是基于(Rmean, Gmean, Bmean)和(Rmax, Gmax, Bmax)来进行白平衡校…

内部类

一.概念 当一个事物内部&#xff0c;还有一个部分需要一个完整的结构进行描述&#xff0c;而这个内部的完整的结构又只为外部事物提供服务&#xff0c;那么将这个内部的完整结构最好使用内部类。在Java中&#xff0c;可以将一个类定义在另一个类或者一个方法内部&#xff0c;前…

第46篇:随机存取存储器(RAM)模块<五>

Q&#xff1a;本期我们使用Quartus软件的IP Catalog工具创建双端口RAM。 A&#xff1a;前期创建的RAM存储模块只有一个端口&#xff0c;同时为读/写操作提供地址。我们将再创建一个具有两个地址输入端口的RAM模块&#xff0c;分别为读操作和写操作提供地址。选择Basic Functio…

2000-2022年各省人力资本水平数据(含原始数据+计算过程+计算结果)(无缺失)

2000-2022年各省人力资本水平数据&#xff08;含原始数据计算过程计算结果&#xff09; 1、时间&#xff1a;2000-2022年 2、来源&#xff1a;国家统计局 3、指标&#xff1a;普通高等学校在校学生数(万人)、年末常住人口&#xff08;万人&#xff09;、人力资本水平 4、范…

网络编程day6

#include <myhead.h> void Insert_Record(sqlite3* ppDb); // 插入记录 void Delete_Record(sqlite3* ppDb); // 删除记录 void Update_Record(sqlite3* ppDb); // 修改记录 int main(int argc, const char *argv[]) { //1、定义一个数据库句柄指针sqlite3 * ppDb NULL;…

面试经典150题——相同的树

​ 1. 题目描述 2. 题目分析与解析 要编写一个判断两棵二叉树是否完全相同的代码&#xff0c;首先需要理解何谓“完全相同”的二叉树。完全相同意味着两棵树的结构完全一致&#xff0c;并且所有对应的节点上的值也必须相同。 1. 定义问题 首先明确问题定义&#xff1a;给定…

RC4Drop加密技术:原理、实践与安全性探究

title: RC4Drop加密技术&#xff1a;原理、实践与安全性探究 date: 2024/4/18 20:47:30 updated: 2024/4/18 20:47:30 tags: RC4算法流加密安全性RC4Drop技术密钥流加密解密网络通信 第一章&#xff1a;介绍 1.1 加密技术的重要性 加密技术在当今信息社会中扮演着至关重要的…

R语言计算:t分布及t检验

t分布理论基础 t分布也称Student’s t-distribution&#xff0c;主要出现在小样本统计推断中&#xff0c;特别是当样本量较小且总体标准差未知时&#xff0c;用于估计正态分布的均值。其定义基于正态分布和 X 2 X^{2} X2分布&#xff08;卡方分布&#xff09;。如果随机变量X服…

Matlab r2023b Simulink 给子系统添加封面

写这篇记录的原因是&#xff0c;r2023b版本里改动了自定义封面的界面&#xff0c;而我是一个新手小白&#xff0c;零基础&#xff0c;探索一天之后发现实现方法。最终效果如图&#xff1a; 步骤1&#xff1a;打开软件&#xff0c;点击Simulink&#xff0c;再打开含有子系统的工…

【基础】在GCC中编译和链接不是一个命令

在 GCC&#xff08;GNU Compiler Collection&#xff09;中&#xff0c;编译和链接不是一个命令。编译是将源代码转换为目标代码的过程。它主要进行语法检查、词法分析、生成中间代码等操作。链接是将多个目标文件和库文件组合成一个可执行文件的过程。在 GCC 中&#xff0c;通…

Cesium实现加载离线地形数据(nginx发布数据,cesiumLab地形切片数据)

实现效果如图&#xff1a; 详细步骤 1 下载地形数据&#xff08;DEM&#xff09; 下载地址&#xff1a;地理空间数据云 (gscloud.cn) 操作步骤&#xff1a; 注意&#xff1a;第3步可以自主选择DEM的分辨率&#xff0c;然后下载。 下载结果解压后如下图&#xff1a; 2 使用…

C语言 递归

递归指的是在函数的定义中使用函数自身的方法。 举个例子&#xff1a; 从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚&#xff0c;正在给小和尚讲故事呢&#xff01;故事是什么呢&#xff1f;“从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚&…