当前位置: 首页 > news >正文

Python骚操作,实现驾考自动答题,这就直接满分了?

Python骚操作来了~

用Python来实现科目一/四自动答题,100分不要太简单!

最初是表弟最近想买车,但是驾照都没有,买什么车,只能先考驾照~

看他在网页上练习题目慢吞吞的,我就看不下去了,直接给他来一手揠苗助长~

当时就用Python整了几十行代码,给他实现一下自动答题,我说你什么时候答题这么快,我就给你买个车!

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

案例效果演示

就这速度,我可没加速哈~

在这里插入图片描述

代码展示

代码仅做展示

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

模块

import requests
import parsel
from selenium import webdriver

发送请求

def get_response(html_url):
    """
    :param html_url: 请求网址
    :return: 响应对象
    """
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
    }
    response = requests.get(url=html_url, headers=headers)
    return response

获取答案链接

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)

完整源代码下方名片获取哈~

最后给大家推荐一套Python视频:代码总是学完就忘记?100个实战项目!让你沉迷学习丨学以致用丨下一个Python大神就是你!

相关文章:

  • 【Gitee学习之路】Git概述安装教程基本操作指令
  • 一眼就看懂;Android App 开发前景介绍及学习路线规划
  • Python实现支持向量机SVM分类模型线性SVM决策过程的可视化项目实战
  • 想学习软件测试,求推荐看什么书或者教程?
  • Spring-事务管理
  • 监控平台SkyWalking9入门实践
  • 【Linux】常见指令(二)
  • 网络套接字实现UDP机制通信
  • C语言字符串函数的详解
  • 在 Next.js 中使用无服务器函数构建 API
  • Go语言json包怎么使用?
  • ios屏蔽更新的插件
  • Linux之内核Platform LED
  • 详解CAN总线:CAN总线报文格式—遥控帧
  • 1,【electron+vue】 构建桌面应用——创建electron项目(包括创建,运行,打包碰到的问题)
  • 03Go 类型总结
  • 2017前端实习生面试总结
  • Angular4 模板式表单用法以及验证
  • C# 免费离线人脸识别 2.0 Demo
  • canvas 五子棋游戏
  • HTTP请求重发
  • Netty源码解析1-Buffer
  • Rancher如何对接Ceph-RBD块存储
  • Transformer-XL: Unleashing the Potential of Attention Models
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 二维平面内的碰撞检测【一】
  • 解析带emoji和链接的聊天系统消息
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 王永庆:技术创新改变教育未来
  • 想写好前端,先练好内功
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 国内开源镜像站点
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总518. 零钱兑换 II
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (JS基础)String 类型
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (第二周)效能测试
  • (二)WCF的Binding模型
  • (六)c52学习之旅-独立按键
  • (七)Knockout 创建自定义绑定
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • ... 是什么 ?... 有什么用处?
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .Net FrameWork总结
  • .Net IE10 _doPostBack 未定义
  • .NET 的程序集加载上下文
  • @vue/cli 3.x+引入jQuery
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • []Telit UC864E 拨号上网
  • [Bugku]密码???[writeup]
  • [BZOJ] 3262: 陌上花开