当前位置: 移动技术网 > IT编程>脚本编程>Python > 如何使用python进行自动网上考试

如何使用python进行自动网上考试

2020年04月15日  | 移动技术网IT编程  | 我要评论

机器侠高清下载,谷牧儿子,山口里子作品

 

如何使用python进行自动网上考试

 

前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: his hacker

ps:如有需要python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/a6zvjdun

背景说明

在github上发现一个古老的华医网考试脚本(https://github.com/lhzzzzzz/autoexamofhuayi),是python2写的。它实现了华医网自动登录、自动获取考试编号cwid、自动考试。现在把它翻新一下。

脚本功能

基于已知的考试编号cwid,进行华医网自动考试。

需要用到的工具(开发环境)

1、google chrome;

2、fiddler:用于抓包;

3、pycharm

思路分析

一、答题流程分析

已有现在的javascript脚本(《华医网自动答题脚本》),根据华医网的答题代码,进行自动答题。但这个代码使用的是试错了,反复提交需要消耗时间,不适合批量操作。

根据github现有脚本(https://github.com/lhzzzzzz/autoexamofhuayi),发现华医网是直接把原答案放在试题的网页中

如何使用python进行自动网上考试

 

所以其实在答题界面,用chrome的f12进行inspect,也能找到正确答案。

 

如何使用python进行自动网上考试

 

name="gvquestion$ctl03$result" 对应的 value即正确答案的value

通过fiddler抓包可以看到,考试主要包括三个动作:

1、get 考试试题

2、post 考试试题+答案

3、get 考试结果

而其中

post答案提交的data包括以下几部分:

1、__eventtarget 等是 asp.net 相关验证参数:可以从考试界面的网页中用正则表达式提取;其中留空的字段可以不提交

2、hidden1、hidden2、hidden3:表示最前面的课程评价星级,可以不提交;

3、gvquestion$ctl03$question_id、gvquestion$ctl03$result、gvquestion$ctl03$rbl :表示题号、正确选项、考生选项(这里当然是直接提交正确选项的value)

如何使用python进行自动网上考试

 

二、模拟登录华医网

根据旧的py脚本,以前的华医网登录不需要验证码,现在有了图片验证码,登录变得麻烦了。还是改成手动复制fiddler抓到的cookie吧

三、session会话保持

华医网登录之后使用session进行对话,获取考卷、提交考试、获取成绩都会刷新cookie,而且只有最新的cookie能进行下次对话。

所以这里需要用requests.session()保持会话,而且起始的cookie必须是最新的一个cookie

 

如何使用python进行自动网上考试

 

运行结果

如果全部考完,可以在网页中看到可以申请证书。

more

华医网很多bug的,如没有完成考试也可以直接申请证书,在考试结果页面,浏览器状态输入代码就可以。

使用流程(代码实现)

 

如何使用python进行自动网上考试

 

2020年最新python教程:

如果你处于想学python或者正在学习python,python的教程不少了吧,但是是最新的吗?

说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的python教程。

python  openpyxl使用操作和openpyxl操作

 

 

python  openpyxl使用操作和openpyxl操作

 

 

python  openpyxl使用操作和openpyxl操作

 

 

python  openpyxl使用操作和openpyxl操作

 

 

以上这些教程小编已经为大家打包准备好了,希望对正在学习的你有所帮助!

获取方式,私信小编 “ 资料 ”,即可免费获取哦!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网