前言

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

背景说明

在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进行自动网上考试相关推荐

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

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: HIS Hacker PS:如有需要Python学习资料的小伙伴可以 ...

  2. HTML实战案例2:制作模拟考试试卷页面

    实战案例2:制作模拟考试试卷页面 一.完整的页面效果图 二.文本素材 HTML在线考试试题 1.HTML中,换行使用的标签是().  A.<br /> B.<p> C.< ...

  3. python数据分析实战案例-Python数据分析案例实战

    原标题:Python数据分析案例实战 至今我们网站已经开设了多个数据分析系列的课程,大部分都是基于算法思路来开展的,课程中着重点在于算法的讲授.软件的使用,案例只是辅助学习.然而很多学员反映,希望可以 ...

  4. python自动化办公实战案例,python 自动化办公 案例

    推荐几个适合新手练手的Python项目 谷歌人工智能写作项目:小发猫 python编程:输入一个自然数n,如果n为奇数,输出表达式1+1/3+-+1/n的值 def summ(n): if n%2: ...

  5. python爬虫实战案例-Python爬虫实战案例:手机APP抓包爬虫

    1. items.pyclass DouyuspiderItem(scrapy.Item): name = scrapy.Field()# 存储照⽚的名字 imagesUrls = scrapy.Fi ...

  6. Python应用实战案例-Python协程管理精讲万字长文(建议收藏)

    前言 首先,本文不是带你浏览源代码,然后对照原始代码给你讲 Python 标准的实现.相反,我们会从实际问题出发,思考解决问题的方案,一步步体会解决方案的演进路径,最重要的,希望能在过程中获得知识系统 ...

  7. Python应用实战案例-Python实现K线图绘制

    matplotlib做交互式展示数据 就像上面GIF展示的一样,使用matplotlib也能交互式展示数据.其实实现逻辑也很简单,先创建一幅静态图,之后根据鼠标位置盘判断若光标在数据点上就使用anno ...

  8. Python应用实战案例-Python使用MODIS数据实现温度植被干旱指数TVDI的计算

    1.数据下载 数据及代码参见温度植被干旱指数TVDI 采用的数据为MODIS植被指数产品MOD13A3.地表温度产品MOD11A2以及SRTM DEM产品. MODIS数据来源于美国航空航天局(Nat ...

  9. python生成试卷制卷系统_Python如何自动生成考试试卷?

    本期要给大家带来自动生成试卷内容,实现目标是随机生成100道100以内的加法试卷.最终效果是以Word文件方式生成试卷并放置到相应目录下.这里需要依赖的知识点主要包含docxtpl模板的使用.Word ...

最新文章

  1. FFmpeg通过摄像头实现对视频流进行解码并显示测试代码(旧接口)
  2. BEBLID:增强的高效局部图像特征描述符
  3. 【Java源码分析】ArrayList源码分析
  4. Hadoop安装的ssh免密码登录步骤
  5. 介绍MFSideMenu左右滑动控件的使用
  6. WIN7开启WIFI
  7. 涉足荒野script_为什么社区经理必须涉足(而不是潜入)社区
  8. 练习五十一:序列交换
  9. vscode ---- 插件
  10. 3. Mac 下安装python
  11. Effective C# Item17:尽量减少装箱和拆箱
  12. tornado celery mysql_tornado中使用celery实现异步MySQL查询
  13. iOS学习之WebView的使用
  14. Mac软件下载提示:“已损坏,无法打开”解决办法
  15. 计算机闹铃音乐是什么歌,适合当闹铃的歌曲
  16. 计算机专业对环境保护,计算机与环境保护
  17. 安装完Fedora 18后需要做的事情
  18. OAS的使用——概述
  19. android 自动调节音量,Android 音量调节
  20. R语言实现并行计算[parallel,Rdsm]

热门文章

  1. Large-scale cluster management at Google with Borg
  2. 中国土地市场网爬虫案例
  3. Docker搭建+项目实训(多次的作业的综合)
  4. windows系统下,如何使用win+R快速打开安装的应用
  5. Linux01---Linux常用命令
  6. Java 中的大根堆和小根堆
  7. JDBC连接MySQL数据库的问题
  8. 【鸿蒙】HarmonyOS认证学习资料整理
  9. v-chart 自定义显示格式
  10. 2017第三届美亚杯全国电子数据取证大赛团队赛write up