前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

目录

      • 前言
      • 环境使用:
      • 模块使用:
      • 自动答题思路步骤:
      • 代码展示
        • 尾语

环境使用:

  • Python 3.8

    –> 解释器

  • Pycharm

    –> 编辑器

模块使用:

import requests —> 数据请求模块 pip install requests

import re

from selenium import webdriver —> 自动测试模块 pip install selenium==3.141.0

默认安装 selenium 安装 4.0 和 3.0 语法上面有区别, 但是方法一样

本文所有模块\环境\源码\教程皆可点击文章下方名片获取此处跳转

自动答题思路步骤:

一. 获取题目答案

答案页面 –> 是有答案内容的

找到所有答案页面ID, 就可以获取所有题目答案内容了 –> 分析答案页面ID在哪里可以获取

  • 通过开发者工具进行抓包分析

    1. 打开开发者工具: F12 或者 鼠标右键点击检查选择network
    2. 刷新网页: 让文本网页的数据内容重新加载一遍
    3. 关键字搜索: 通过搜索 答案ID, 去查询对应数据包
  • 通过代码, 然后获取答案内容:

    代码基本四大步骤: 发送请求 –> 获取数据 –> 解析数据 –> 保存数据

    1. 发送请求, 模拟浏览器对于url地址发送请求

      请求地址: 答案页面url

    2. 获取数据, 获取页面网页源代码

    3. 解析数据, 提取我们想要的数据内容

      答案选项

二. 把题目答案和选项进行比较, 自动选择正确答案

模拟人的行为去答题:

  1. 打开浏览器

  2. 输入答题网址

因为有1700多题目, 重复操作

  1. 选择正确选项

  2. 点击下一题

代码展示

# 导入数据请求模块 --> 第三方模块, 需要安装 pip install requestsimport requests# 导入正则模块 --> 内置模块, 不需要安装import re# 导入自动化模块 --> 第三方模块, 需要安装 pip install selenium==3.141.0 from selenium import webdriver"""1. 打开浏览器    配置浏览器驱动:        大版本一样, 小版本最相近即可"""driver = webdriver.Chrome(r'D:\download\anaconda\chromedriver.exe')# 2. 访问网站driver.get('https://www.jsyks.com/kms-sxlx')# 设置全屏driver.maximize_window()# 读取答案文本内容, 获取答案ID f = open('答案ID.txt', encoding='utf-8')# 字符串分割方法: split() --> 字符串数据变成列表answer_id_list = f.read().split(',')# for循环遍历, 把列表里面元素一个一个提取出来for answer_id in answer_id_list: """    1. 发送请求, 模拟浏览器对于url地址发送请求        请求地址: 答案页面url        - 安装模块:            I. 点击pycharm终端 输入命令 pip install requests            II. win + R 输入cmd 输入命令 pip install requests        - 模拟浏览器发送请求            好处: 防止被反爬            headers 请求头 --> 可以复制        -  表示响应对象            Response: 中文意思响应/回复/回答            : 表示对象            200: 状态码 表示请求成功 --> 相当于你打电话, 打通了有嘟嘟嘟声音            404: 链接不对 --> 相当于你打电话, 你所拨打的电话是空号    打乱了 --> 题目 + 答案内容 都保存下来, 然后进行对比    """ # 构建答案页面url --> f'{}' 字符串格式化方法 --> format answer_url = f'https://tiba.jsyks.com/Post/{answer_id}.htm' # 伪装模拟 headers = { # User-Agent 表示浏览器基本身份标识 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36' } # 发送请求 response = requests.get(url=answer_url, headers=headers) """    2. 获取数据, 获取页面网页源代码    3. 解析数据, 提取我们想要答案内容        正则表达式: 会 1 不会 0        re.findall('匹配的数据', '什么地方匹配') --> re模块里面findall方法: 找到所有我们想要的数据内容        (.*" />

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