【实战案例】python进行自动网上考试
前言
文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
背景说明
在github上发现一个古老的华医网考试脚本(https://github.com/lhzzzzzz/autoexamofhuayi),是python2写的。它实现了华医网自动登录、自动获取考试编号cwid、自动考试。现在把它翻新一下。
脚本功能
基于已知的考试编号cwid,进行华医网自动考试。
需要用到的工具(开发环境)
1、Google Chrome;
2、Fiddler:用于抓包;
3、PyCharm
思路分析
一、答题流程分析
已有现在的Javascript脚本(《华医网自动答题脚本》),根据华医网的答题代码,进行自动答题。但这个代码使用的是试错了,反复提交需要消耗时间,不适合批量操作。
根据GitHub现有脚本(https://github.com/lhzzzzzz/autoexamofhuayi),发现华医网是直接把原答案放在试题的网页中
所以其实在答题界面,用chrome的F12进行Inspect,也能找到正确答案。
name=“gvQuestionctl03ctl03ctl03result” 对应的 value即正确答案的value
通过Fiddler抓包可以看到,考试主要包括三个动作:
1、GET 考试试题
2、POST 考试试题+答案
3、GET 考试结果
而其中
POST答案提交的data包括以下几部分:
1、__EVENTTARGET 等是 ASP.Net 相关验证参数:可以从考试界面的网页中用正则表达式提取;其中留空的字段可以不提交
2、Hidden1、Hidden2、Hidden3:表示最前面的课程评价星级,可以不提交;
3、gvQuestionctl03ctl03ctl03question_id、gvQuestionctl03ctl03ctl03result、gvQuestionctl03ctl03ctl03rbl :表示题号、正确选项、考生选项(这里当然是直接提交正确选项的value)
二、模拟登录华医网
根据旧的py脚本,以前的华医网登录不需要验证码,现在有了图片验证码,登录变得麻烦了。还是改成手动复制Fiddler抓到的cookie吧
三、Session会话保持
华医网登录之后使用Session进行对话,获取考卷、提交考试、获取成绩都会刷新cookie,而且只有最新的cookie能进行下次对话。
所以这里需要用requests.session()保持会话,而且起始的cookie必须是最新的一个cookie
运行结果
如果全部考完,可以在网页中看到可以申请证书。
MORE
华医网很多bug的,如没有完成考试也可以直接申请证书,在考试结果页面,浏览器状态输入代码就可以。
使用流程(代码实现)
为解决初学者学习上的困难,专门建立的Python学习扣QUN:⑧⑤⑤-④零⑧-⑧⑨③从零基础开始到Python各领域的项目实战教程、开发工具与电子书籍。与你分享企业当下对于python人才需求及学好python的高效技巧,不停更新最新教程!点击加入我们的 python学习圈
【实战案例】python进行自动网上考试相关推荐
- 如何使用python进行自动网上考试
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: HIS Hacker PS:如有需要Python学习资料的小伙伴可以 ...
- HTML实战案例2:制作模拟考试试卷页面
实战案例2:制作模拟考试试卷页面 一.完整的页面效果图 二.文本素材 HTML在线考试试题 1.HTML中,换行使用的标签是(). A.<br /> B.<p> C.< ...
- python数据分析实战案例-Python数据分析案例实战
原标题:Python数据分析案例实战 至今我们网站已经开设了多个数据分析系列的课程,大部分都是基于算法思路来开展的,课程中着重点在于算法的讲授.软件的使用,案例只是辅助学习.然而很多学员反映,希望可以 ...
- python自动化办公实战案例,python 自动化办公 案例
推荐几个适合新手练手的Python项目 谷歌人工智能写作项目:小发猫 python编程:输入一个自然数n,如果n为奇数,输出表达式1+1/3+-+1/n的值 def summ(n): if n%2: ...
- python爬虫实战案例-Python爬虫实战案例:手机APP抓包爬虫
1. items.pyclass DouyuspiderItem(scrapy.Item): name = scrapy.Field()# 存储照⽚的名字 imagesUrls = scrapy.Fi ...
- Python应用实战案例-Python协程管理精讲万字长文(建议收藏)
前言 首先,本文不是带你浏览源代码,然后对照原始代码给你讲 Python 标准的实现.相反,我们会从实际问题出发,思考解决问题的方案,一步步体会解决方案的演进路径,最重要的,希望能在过程中获得知识系统 ...
- Python应用实战案例-Python实现K线图绘制
matplotlib做交互式展示数据 就像上面GIF展示的一样,使用matplotlib也能交互式展示数据.其实实现逻辑也很简单,先创建一幅静态图,之后根据鼠标位置盘判断若光标在数据点上就使用anno ...
- Python应用实战案例-Python使用MODIS数据实现温度植被干旱指数TVDI的计算
1.数据下载 数据及代码参见温度植被干旱指数TVDI 采用的数据为MODIS植被指数产品MOD13A3.地表温度产品MOD11A2以及SRTM DEM产品. MODIS数据来源于美国航空航天局(Nat ...
- python生成试卷制卷系统_Python如何自动生成考试试卷?
本期要给大家带来自动生成试卷内容,实现目标是随机生成100道100以内的加法试卷.最终效果是以Word文件方式生成试卷并放置到相应目录下.这里需要依赖的知识点主要包含docxtpl模板的使用.Word ...
最新文章
- FFmpeg通过摄像头实现对视频流进行解码并显示测试代码(旧接口)
- BEBLID:增强的高效局部图像特征描述符
- 【Java源码分析】ArrayList源码分析
- Hadoop安装的ssh免密码登录步骤
- 介绍MFSideMenu左右滑动控件的使用
- WIN7开启WIFI
- 涉足荒野script_为什么社区经理必须涉足(而不是潜入)社区
- 练习五十一:序列交换
- vscode ---- 插件
- 3. Mac 下安装python
- Effective C# Item17:尽量减少装箱和拆箱
- tornado celery mysql_tornado中使用celery实现异步MySQL查询
- iOS学习之WebView的使用
- Mac软件下载提示:“已损坏,无法打开”解决办法
- 计算机闹铃音乐是什么歌,适合当闹铃的歌曲
- 计算机专业对环境保护,计算机与环境保护
- 安装完Fedora 18后需要做的事情
- OAS的使用——概述
- android 自动调节音量,Android 音量调节
- R语言实现并行计算[parallel,Rdsm]