赞
踩
今天分享一个自己实现广开线上作业自动答题的思路,使用的是python的第三方库selenium,我是python初学者,因为自己写的代码比较杂乱多,所以代码仅供参考。
准备:
1、下载浏览器驱动,我的是火狐浏览器(链接:https://pan.baidu.com/s/1mdZEMYZBHfE1VWsKfeGUAg 提取码:1evr ),直接放在python的原目录下(C:\Users\Administrator\AppData\Local\Programs python原目录一般在这个位置)
2、安装python的第三方库(selenium,re,xlrd)。解释一下:selenium是用来操作页面elements的,re是用来正则表达式的,xlrd是拿来读取excel文件的
思路第一步:模拟登录
1.png (60.72 KB, 下载次数: 0)
2020-11-11 12:30 上传
、
打码的部分,username是账号,password是密码,输入账号密码运行后,打开的页面为
2.png (520.42 KB, 下载次数: 0)
2020-11-11 12:35 上传
搜索selenium如何自动登录网站,搜索selenium基础教程,很快就了解到代码的用法,实现打开页面和登录页面和元素点击。
思路第二步:进入考试
3.png (53.76 KB, 下载次数: 0)
2020-11-11 12:36 上传
我这里不想一步步点击,所以添加一个url网址,直接进入到考试前页面
4.png (324.55 KB, 下载次数: 0)
2020-11-11 12:39 上传
然后利用代码点击“现在参加测试”即可进入考试页面,还有一段try的试错代码,是因为点击“现在参加测试”后可能还有一个弹框尽在再次确认是否进入考试,如果有就点击再次确认进入考试,没有就直接进入考试
5.png (315.07 KB, 下载次数: 0)
2020-11-11 12:45 上传
思路第三步:判断题型
6.png (99.52 KB, 下载次数: 0)
2020-11-11 13:08 上传
自己查找规律,进行简单的逻辑判断分辨出题型,广开的作业只有选择题、判断题和多选题。要注意的是语法,find_element用于查找仅有的一个元素,find_elements用于查找多个元素并用列表储存,所以用len()可以统计elements数量。
思路第四步:匹配答案自动答题
(1)题库准备
作业完成后是可以回顾得到答案,而作业又是可以无限次数重做,于是统计了一个题目比较全的题库
17.png (29.88 KB, 下载次数: 0)
2020-11-11 14:14 上传
7.png (42.35 KB, 下载次数: 0)
2020-11-11 13:25 上传
本来打算学习SQL来进行匹配的,不过我想用EXCEL,为了方便匹配我做了以下处理:1、去掉所有空格
8.png (12.65 KB, 下载次数: 0)
2020-11-11 13:28 上传
2、不留空行
9.png (12.75 KB, 下载次数: 1)
2020-11-11 13:29 上传^p代表一个换行符
3、答案独自在一行
10.png (12.9 KB, 下载次数: 0)
2020-11-11 13:32 上传
11.png (12.9 KB, 下载次数: 0)
2020-11-11 13:32 上传
4、全选,粘贴在EXCEL工作簿的第一个工作表的第一列中
12.png (22.03 KB, 下载次数: 0)
2020-11-11 13:35 上传
(2)获取页面上题目内容,获取选择项内容
13.png (74.35 KB, 下载次数: 1)
2020-11-11 13:38 上传题目获取之后去掉所有的空格和标点符号,方便在EXCEL表里面匹配
(3)匹配答案
14.png (162.14 KB, 下载次数: 0)
2020-11-11 14:01 上传
(4)选择正确的答案
15.png (79.19 KB, 下载次数: 0)
2020-11-11 14:06 上传
其他报错:开始考试后一定要第一题,否则报错
效果
16.png (98.94 KB, 下载次数: 0)
2020-11-11 14:11 上传
18.png (57.28 KB, 下载次数: 1)
2020-11-11 14:14 上传
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。