Python实现驾考自动答题,隔壁老王每次都100分....

news2025/2/27 23:04:16

人生苦短,我用python

不知道大家都考完驾照没?

这个驾照不管大家有没有,我相信大家都是这个:

请添加图片描述

朋友最近在考驾照,快考科一了…

我微微一笑当场给他整个活~

用Python整了几十行代码,给朋友实现一下自动答题~

我说你什么时候答题这么快,我就给你买个车!

嘿嘿,悄悄告诉你们,那是不可能的,不信你们看案例演示!

python 安装包+资料:点击此处跳转文末名片获取

请添加图片描述

案例效果演示

原速未加速

请添加图片描述

代码展示

代码仅做展示

网址我屏蔽了,不然系统不给过~

模块

import requests
import parsel
from selenium import webdriver

请添加图片描述

发送请求

在这里插入图片描述

获取答案链接

def get_answer_url(html_url):
    """
    :param html_url:
    :return:
    """
    html_data = get_response(html_url).text
    selector = parsel.Selector(html_data)
    answer_url_id = selector.css('.Content li::attr(c)').getall()
    answer_url_list = [f'https://地址我屏蔽了,不然不给过/Post/{i}.htm' for i in answer_url_id]
    return answer_url_list

请添加图片描述

获取答案

def get_answer_result(answer_url):
    """
    
    :param answer_url:
    :return:
    """
    answer_data = get_response(html_url=answer_url).text
    selector = parsel.Selector(answer_data)
    question = selector.css('#question a::text').get()
    answer = selector.css('#question h1 u::text').get()
    if answer == '对':
        answer = '正确'
    elif answer == '错':
        answer = '错误'

    answer_dict = {
        '问题': question,
        '答案': answer
    }
    return answer_dict

获取所有问题以及答案

def get_all_answer(answer_url_list):
    """
    
    :param link:
    :return:
    """
    page = 1
    for answer_url, li in zip(answer_url_list, lis):
        answer_dict = get_answer_result(answer_url)
        bs = li.find_elements_by_css_selector('b')
        num = 1
        for b in bs:
            choose = b.text
            if len(choose) > 2:
                choose = choose[0]
            print(choose, answer_dict['答案'])
            if choose in answer_dict['答案']:
                driver.find_element_by_css_selector(f'#LI{page} b:nth-child({num+2})').click()
                print('点击了')
            else:
                print('没有点击')
            num += 1
        page += 1
        print(answer_dict)

今天的文章就到这里啦~

今天也不要忘记学习呐(✿◡‿◡)


👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端面试题 - 基础(HTML、HTTP、WEB)

文章目录1、前端 SEO 需要注意哪些2、img 标签上的 title 和 alt 区别3、浏览器输入 url 到显示过程4、浏览器渲染过程5、常见请求方式6、常见的状态码7、网站性能优化8、语义化理解9、浏览器内核理解10、H5的新特性11、离线存储使用,工作原理12、浏览器是如何管理和…

确保实时操作系统(RTOS)设备中的数据安全

导读1月28日大家庆祝了数据保护日,这是一项旨在促进保护数据隐私和安全的国际活动。为了提高人们对数据保护的意识,讨论实时操作系统中数据安全的问题势在必行。目前非常规操作系统已被广泛使用,所以了解这一系统非常重要,尤其是涉…

做完自动化测试,但别让不会汇报毁了你...

pytest 是一个成熟的全功能Python测试工具,可以帮助您编写更好的程序。它与 python 自带的 unittest 测试框架类似,但 pytest 使用起来更简洁和高效,并且兼容 unittest 框架。pytest 能够支持简单的单元测试和复杂的功能测试,pyte…

Javassist动态生成类使用,以及Arthas 查看动态代理生成类内容

java反射 反射的弊端: 性能开销: 因为反射涉及到动态解析的类型,所以某些Java虚拟机的优化不能被执行(因为它不能真正了解你在做什么)。因此,反射操作的性能比非反射操作的性能要慢,应该避免在对性能敏感的应用程序中频繁调用的代码部分。 …

C++记录总结及面试常见问题

C记录总结及面试常见问题指针和函数内存分区模型访问权限struct & class创建类构造函数静态成员this指针const 修饰成员函数友元friend重载运算符和重载函数继承读文件ifstream/fstreamvector中resize和reserve的区别智能指针左值与右值struct、class区别引用指针和函数 函…

Zabbix6.0升级到Zabbix6.4

1:现在的版本是6.0.3 2:停止Zabbix Server进程。 systemctl stop zabbix-server 若升级Zabbix proxy版本,需也停止Zabbix proxy服务 。 systemctl stop zabbix-proxy 3:我用的是MariaDB数据库名称是zabbix。 4: 查看…

windows11安装pytorch2.0

换了新电脑,好久没用windows了,配置一下环境,顺便记录一下方便帮助AI小白不会浪费时间在装环境上(一星期不夸张hah) 打开命令行,然后输入 nvidia-smi,检查自己的显卡驱动 也可以通过图形界面查…

Python轻量级Web框架Flask(6)——Flask中的单表操作(增删改“查”)

0、前言:Python轻量级Web框架Flask(5)中生成的新模板就是包含数据库操作的Flask模板。 在pycharm中用flask写表结构时需用用到数据类型的定义如下: 下面总结一些常用到的数据类型: 1、Python轻量级Web框架Flask&…

传智健康项目总结

耗时一个半月终于把传智健康项目跟着做完了,下面是对项目的一点心得体会。 项目知识点总结 Maven中parent父工程聚合 聚合模块(父工程)作用:父工程是一个pom工程,通常只是用来帮助其子模块构建的工具,本身并没有实质的内容。具体…

【Pytorch】搭建网络模型的实战

【Pytorch】搭建网络模型的实战CIFAR10 model structure搭建网络使用Sequential进行搭建网络模型使用tensorboard查看网络结构对CIFAR10数据集进行分类,根据图片内容识别这是哪一类 CIFAR10 model structure 输入input:3通道的32 x 32 图片卷积操作的通道数不变 那…

C#,码海拾贝(16)——求“矩阵秩”的全选主元“高斯消去法(Gauss Elimination)”C#源代码,《C#数值计算算法编程》源代码升级改进版

1 矩阵的秩 Rank of Matrix 矩阵的秩是线性代数中的一个概念。在线性代数中,一个矩阵A的列秩是A的线性独立的纵列的极大数,通常表示为r(A),rk(A)或rank A。 在线性代数中,一个矩阵A的列秩是A的线性独立的纵列的极大数目。类似地&…

全面解析反欺诈(羊毛盾)API,助你识别各类欺诈风险

前言 反欺诈(羊毛盾)反机器欺诈 API,是一种基于大数据分析和模型产品的技术,通过输入手机号、手机 IP 地址进行检测,帮助客户识别大量存在恶意的账号。 反欺诈(羊毛盾)API 的作用 反欺诈&…

Spring自定义参数解析器~

1. 什么是参数解析器 RequstBody、RequstParam 这些注解是不是很熟悉? 我们在开发 Controller 接口时经常会用到此类参数注解,那这些注解的作用是什么?我们真的了解吗? 简单来说,这些注解就是帮我们将前端传递的参数…

基于Sikuli GUI图像识别框架的PC客户端自动化测试实践

目录:导读 引言 一、GUI图像识别框架元祖:Sikuli 二、Sikuli运行原理 三、Sikuli安装 四、Sikuli IDE主界面基本使用 五、Sikuli 脚本语法 六、Sikuli 应用示例 七、Sikuli 优势及局限 1.优势 2.局限 Sikuli 使用小结 引言 Sikuli是一种基于…

【Hello Network】网络基础1

作者:小萌新 专栏:网络 作者简介:大二学生 希望能和大家一起进步 本篇博客简介:简单介绍网络的基础概念 网络基础1网络基础网络的起源网络在哪里认识协议网络协议协议分层OSI七层模型TCP/IP协议网络传输流程局域网的两台主机通信两…

跟姥爷深度学习3 神经网络的调试实操

一、前言 前面我们做了一次天气预测的模型,训练的结果都还好,网络好歹是“拟合”了,但预测数据不合预期让我一直耿耿于怀。所以我又花了很长时间来研究为什么,我的理论依据明明没有问题(今日*均温度与*一周*均温度具有…

全球6G技术大会总结报告

全球6G技术大会 论坛B:天地融合智能组网技术 论坛D:2030技术发展趋势 论坛E:6G无线空口传输技术 论坛F:6G通感算架构及关键技术 论坛H:6G网络架构及关键技术 论坛B:天地融合智能组网技术 论坛B中包含…

【Java 并发编程】一文了解线程间有哪些通信方式?

一文了解线程间有哪些通信方式?1. synchronized 内置锁2. volatile 关键字3. 等待/通知机制3.1 等待wait()wait(long)wait(long, int)等待方需遵循如下原则3.2 通知notify()notifyAll()通知方需遵循如下原则notify() 和 notifyAll() 应该用谁?4. 管道输入…

第18章_JDK8-17新特性(下)

第18章_JDK8-17新特性(下) 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 6. 新语法结构 新的语法结构,为我们勾勒出了 Java 语法进化的一个趋势&#xff0c…

STM32 库函数 GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit、GPIO_Write 区别

问题:当我使用STM32库函数对 I/O 口进行赋值时,在头文件中发现有四个相关的函数可以做这个操作,那么它们有什么区别呢? 一、GPIO_SetBits //eg: GPIO_SetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);解释:置位(置1)选择的数…