记一次利用python在信息素养大赛中拿一等奖
#0x01 引言
最近好一段时间没有更新博客了,每天都在忙着教女朋友各种玩法,爬虫呀脚本网站开发搭建呀还有一些网络安全知识什么的,所幸女朋友也很喜欢学习这些(谁知道是不是因为喜欢陪我呢【手动害羞】),因为每次一开就是五六个小时,也就很少有其余空余时间了。当然此时在写博客,她也在看呢【偷笑】
Ps: 有个天天跟自己一起学习的女朋友超棒好吧~
前段时间信息素养大赛刚结束,我也是如愿通过一些“手段”拿到了省一等奖的名次,顺利薅到了比赛的单项奖学金
可不是作弊哦,我可是完全秉持了信息素养的四个主要考验的能力:了解、搜集、评估、利用信息
然后我们废话不多说啦,直接开始正文!
#0x10 正文
#0x11 了解信息
通过基础的搜索引擎,我们可以了解到信息素养和信息素养大赛是一个怎样的东西
#0x12 搜集信息
首先打开信息素养竞赛平台 —— 备赛平台 —— 选择题库为2022模拟训练题库(最多题的题库)
开始答题(直接0分交卷) —— 然后打开 试卷解析 f12 网络抓包 如下:
可以看得出该数据包主要内容为:题干(title)、选项(ops)、正确答案(realAnswer) ,这也是我们仅仅需要的,其他的可以忽略
此时打开python,模拟请求进行爬取该数据 记得此前安装 requests 库
老规矩 url + headers + data 准备好后 一键request.get/post 请求 成功搜集到我们需要的内容
#0x13 评估信息
通过评估分析(过程就不演示啦,文字很难概述清楚,无非就是多尝试),我们可以得知请求数据作用:
了解到这些数据作用以后,我们可以通过不同的请求数据得出本次试题单选,多选,和判断题的所有内容
利用json解析、dict字典、数组、循环、遍历的知识,将内容整理整理
#0x14 整理信息
首先利用pymysql库进行连接数据库,创建数据库名为 xxsy 创建表名为 data 添加所用到的的字段,如图:
编写执行数据库代码为函数mysql
构建sql语句,传入参数, 调用mysql函数,执行,然后刷新数据库可以看到数据成功插入:
再添加一个查询判断的功能,如果查询到,那么不执行插入语句;如果没有查询到,那么执行插入语句。
目前将题倒入数据库的功能已经完善成功,但是只能导入一次的试卷解析题,不能导入更多题,此时要解决这个问题,就是需要我们重新进行 开始答题 —— 交卷,才能达到更新解析题的目的。
我们可以用代码的请求方式来实现如上操作:
利用 循环 进行顺序 考试 —— 交卷 —— 爬取解析 得到数据 然后添加变量进行数据统计,如图:
我们通过不断的扫描直到不重复的题为0,那么基本上就扫描完了
#0x15 利用信息
把我们扫描到的数据库导出,上传到云服务器
简单写一个php页面上传到服务器通过模糊查询展示数据
比赛时候直接用这个有点太明显了,我们可以稍微伪装一下:利用前端技术稍微模拟一下 “中国知网”(这是在考试中专门用来检索的网站) 的页面
至此完结,我们比赛时候直接打开页面看到题查找就好了
#0x20 后记
总的来说,这个过程也就耗费不了多长时间,代码并不多,主要是靠分析,但是今天写博客加上会议讲解(全过程给女友讲明白),大概用了七八个小时的时间。
然后的话呢,我们这个过程也算是一个学习的过程吧,并不能直接说成作弊,毕竟,比直接背诵题的效果好太多,我们好多时候也不会直接进行检索,看好多班都是通过刷题背题来拿高分的,我们利用一下技术也不是很过分吧~
另外很感谢我的小女朋友能每天陪着我学习~ 她真的很可爱,很聪明很棒! 就这吧,已经晚上22点快半了,我要去煎牛排吃啦!!!!