收款定制开发Python制作自动填写脚本,100%准确率

前言

环境使用

  • Python 3.8
  • Pycharm

模块使用

  • import requests —> 收款定制开发数据请求模块 pip install requests
  • import parsel —> 收款定制开发数据解析模块 pip install parsel
  • from selenium import webdriver —> 收款定制开发自动测试模块 pip install selenium==3.141.0

收款定制开发本次案例代码实现思路:

  1. 收款定制开发打开考试网站
  • selenium --> 浏览器驱动 --> 操作浏览器 <模拟人的行为做操作浏览器>
  1. 获取答案
  • 获取答案网站链接
  • 获取问题以及答案内容
  1. 对比题目以及答案 选出正确答案
  • 获取问题答案选项
  • 和正确的答案进行对比
  • 如果正确答案和选择答案一致, 那就进行点击
  1. 进行点击答题

最终效果

代码实现

导入模块

from selenium import webdriver# 导入数据请求模块import requests# 导入数据解析模块import parsel
  • 1
  • 2
  • 3
  • 4
  • 5

打开浏览器 webdriver.Chrome(‘驱动路径’)

  1. 驱动和代码放在一起
  2. 驱动文件和python安装目录放在一起
driver = webdriver.Chrome(r'D:\download\anaconda\chromedriver.exe')# 设置全屏driver.maximize_window()
  • 1
  • 2
  • 3

输入网址

driver.get('https://www.jsyks.com/kmy-mnks')
  • 1

获取问题及答案

lis = driver.find_elements_by_css_selector('div.Exam ul li')page = 1# for循环遍历, 提取列表里面的元素for li in lis:    # 获取属性    answer_id = li.get_attribute('c')  #  答案链接的ID    # https://tiba.jsyks.com/Post/8f0e0.htm    answer_url = f'https://tiba.jsyks.com/Post/{answer_id}.htm'    # 获取答案以及问题  --> <Response [200]> 表示请求成功    response = requests.get(url=answer_url)    # 获取网页内容 --> 提取答案以及问题内容  转换数据类型    selector = parsel.Selector(response.text)    # 获取问题 --> 把问题和答案保存数据库保存 直接比较答案, 自己建立问题库, 从问题找答案    question = selector.css('#question h1 strong a::text').get()    # 获取答案    answer = selector.css('#question h1 u::text').get()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

点击判断

if answer == '错':    # 把答案内容改成 错误  重新赋值一下    answer = '错误'#  # 如果答案内容是对的话elif answer == '对':    # 把答案内容改成正确重新赋值一下    answer = '正确'# 获取问题选项内容 --> b标签 全部获取下来  b标签是在li标签里面  driver 表示整个网页bs = li.find_elements_by_css_selector('b')num = 1for b in bs:    # 获取b标签文本    choose = b.text    # 判断如何答案比两个元素多的, 就取一个元素    if len(choose) > 2:        # [0]提取 字符串里面第一个元素        choose = choose[0]    # 进行对比 选项和答案一致 是否一模一样    if choose == answer:        # 点击选项 --> 定位到点击那个元素 LI1 --> 1 表示第一题  b:nth-child(3) 表示第一个答案        driver.find_element_by_css_selector(f'#LI{page} b:nth-child({2+num})').click()        print('点击了')    else:        print('选项是', choose, '答案是', answer)    print(choose)    num +=1page += 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

点击提交试卷

如果过快,可能程序还没找到元素 <网页还没加载元素出来, 你就直接点了, 可能报错>

driver.find_element_by_css_selector('div.ExamBtn u.btnJJ').click()
  • 1
👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发