昨天有很多同学在朋友圈秀六级成绩
一个个都如(sang)此(jin)优(tian)秀(liang)

当然也有悲催的哥们

对于上面这位老弟
我只能说:骚呢,兄弟
这种事都能赶上,必须点赞

一、需求分析

在刷朋友圈的时候,看到很多同学截图不规整啊(没错,猪哥处女座),有些准考证号还没打马赛克,于是猪哥就在想能不能用Python生个四六级成绩截图出来,最好还能自动打码,这样岂不是可以直接发朋友圈,装逼一步到位!(别人在秀成绩,你不光可以秀成绩,还可以秀Python)

二、功能设计

很多同学会模仿别人代码,而自己却不知道去如何做一些小项目,其实问题就是在于:你不知从何下手

作为开发人员在工作中都是接需求,所以自己做项目的第一步就是:搞清楚自己要做什么(功能),然后再去量化功能,分步实现!

接下来我们就来看看今天要做一个什么有趣的东西吧!

  1. 查成绩:首先我们通过requests库去学信网查询成绩
  2. 生成截图:查完成绩之后就直接生成截图,截图最好只有中奖有效信息部分
  3. 打码:对于准考证号进行打码

三、技术实现

确定了要做的功能并量化细分完毕后,我们就可以开始敲代码实现了,这里就按照之前细分的步骤一步一步实现就好了!

1.查询四六级成绩

首先我们需要找到四六级的查询入口,这里首选 学信网:https://www.chsi.com.cn/cet/index.jsp

然后我们调出调试窗口,输入准考证号和姓名。记得勾选左上角的Preserve log

然后我们就可以在Network看到第一个请求就是获取四六级结果的请求

拿到URL我们就可以开始使用requests库模拟请求啦,非常简单的一个post方法!

来看看返回的结果,是一个html网页!

2.使网页生成图片

这里我们会使用到一个软件wkhtmltopdf,注意这是一个软件而不是python库,我们先要安装这个软件!

官网下载地址:https://wkhtmltopdf.org/downloads.html ,注意这个网站下载需要打开VPN,不然下载超级慢!

猪哥事先已经把他们都下载放在百度网盘里:wkhtmltopdf软件下载链接:https://pan.baidu.com/s/11VOomkNch7C9m8lqlRaNAg 密码:4xuv

下载后直接安装就可!

Windwos系统同学需要注意:需要把wkhtmltopdf的bin执行文件路径添加到PATH变量中。
Windwos系统同学需要注意:需要把wkhtmltopdf的bin执行文件路径添加到PATH变量中。
Windwos系统同学需要注意:需要把wkhtmltopdf的bin执行文件路径添加到PATH变量中。

软件下载完成后我们还需要一个Python库:imgkit

也许会有同学问:为什么下载完软件还要下库?这两者有什么关系?这个库其实相当于软件的包装器,简单理解有了这个库我们就可以直接用代码调用软件,而不需要像平时那样需要自己去打开使用软件!

安装库:

pip install imgkit

将html转化为png图片,没看错就是只有一步!

imgkit.from_file(‘cet.html’, ‘cet.png’)

注:关于imgkit库更多使用教程请看这里:https://pypi.org/project/imgkit/

我来看看看生成的图片是不是正常的,下图可以看到一个完成的网页截图就生成了!

用这个图片去发朋友圈别人可能会骂你sb,截个这么大的图浪费别人流量!

图片太大,我们想办法把图片截一下,只留下中间结果信息!

图像处理当然要使用我们经典的pillow库

安装:

pip install pillow

剪切图片三行代码搞定,这里我们将截好的图片保存为cut_cet.png

# 剪切图片img = Image.open('cet.png')cropped = img.crop((310, 300, 700, 700))  # (left, upper, right, lower)cropped.save("cut_cet.png")

看看截图后的效果,这样的图片才是一位合格的Python装逼工程师!

3.打码

为什么猪哥会想要打码这个反男性的功能呢?原因在于猪哥这个测试账号也是从朋友圈看到的,所以告诫大家:一定要保护好自己的隐私,你永远不知道别人会那你的数据去干嘛!

好了回到代码中来,打码猪哥准备继续使用我们的pillow库,另外还需要一个常用库numpy库,这两个库会经常一起使用。因为图片由许多个像素构成,而每个像素由rgb数值构成,所以就可以把一张图片转变为一个多维数组,所以numpy库就经常用到!

打码的原理就在于将需要打码区域的像素rgb值修改

我们来看看打码的技术实现,猪哥将打码的代码封装为一个方法,这是通用的,你可以用在其他地方!

这里只需要转入马赛克的大小和需要打码的坐标点就可以,我们来看看最终效果!

上图红色部分是猪哥后来画的,可以看到 准考证号已经被猪哥用Python画上邪恶的马赛克!

四、总结

今天的案例虽然简单,但是却让我们看到了Python的可玩性,将技术应用于生活,装逼就可以无处不在!

源码:https://github.com/pig6/query_cet

四六级成绩还可以这样查?Python助你装B一步到位!!!相关推荐

  1. 四六级成绩查询,你的『验证码』刷出来了吗?

    沉浸在暑假余温里的小可爱们,今天被四六级成绩查询的验证码无情的伤害了一次. 就在8月22日,也就是今天上午9点,学霸们泰然自若,学渣们瑟瑟发抖,有的人甚至在心里考虑是否发微博.朋友圈谢谢超越姐姐(此时 ...

  2. 【官宣】四六级成绩已公布12月补报不可错过

    ❗❗重要通知❗❗ 2020年上半年全国大学英语四.六级考试 9月延考成绩于11月4日发布上午10时 距离 12月四六级考试倒计时42天 *本次考试成绩报告单制作和下发工作计划于12月下旬完成,具体领取 ...

  3. 身份证名字转四六级成绩爬虫

    来源:吾爱破解的ai酸的博文 https://www.52pojie.cn/thread-1112199-1-1.html 修改了一下用xlwt和xlrd批量读写只为以后方便用,详情还是上上面这个网址 ...

  4. 大连四六级培训百家外语英国有学校宣布接受四六级成绩?

    大家都知道,英语四六级考试是国内院校比较看重的,甚至有的学校还会把四六级合格证书作为毕业条件之一.但是,准备留学的同学会发现,无论你去哪个国家,几乎都会要求考托福.雅思或者托业这些国际化英语考试,四六 ...

  5. JDBC添加四六级成绩练习

    practice.class package 练习;import org.junit.jupiter.api.Test; import 通用操作.JDBCUtils; import 通用操作.Prep ...

  6. 微信公众平台开发(103) 四六级成绩查询

    全国大学英语四.六级考试.日语四级.日语六级.德语四级.德语六级.俄语四级.俄语六级以及法语四级考试成绩于2015年8月20日上午9时发布 我们提供微信查询方法 1.关注微信公众账号 二.回复&quo ...

  7. 微信公众平台开发四六级成绩查询

    我们提供微信查询方法 1.关注微信公众账号 二.回复"四六级" 三.输入姓名和准考证号 四.返回查询结果 代码实现 <?php /*方倍工作室 2014年6月全国大学英语四六 ...

  8. 2022下半年全国大学英语四六级成绩今日可查

    截图来源:教育部教育考试院网站 人民网北京2月21日电 (记者李依环)据教育部教育考试院网站消息,2022年下半年(12月)全国大学英语四.六级考试(CET)成绩查询服务于今天上午10时开通,考生可通 ...

  9. 简单的python爬取四六级成绩

    python语言刚刚开始学,又遇到了一个同学忘记自己的准考证号,99宿舍找回准考证号失败了,所以就想知道准考证号的大致范围,一个一个的去查总有结果,这只是最初的想法,于是就勇敢的去做了. 用wires ...

  10. 难忘今宵,四六级和考研成绩公布!说说那些与英语考试有关的往事

    文 / 王不留(微信公众号:王不留) 今天是元宵节. 有意思的是,"四六级成绩"和"考研成绩"两个话题冲上热搜.这一日,两场考试成绩公布! 网友推理出了一套公式 ...

最新文章

  1. iframe几种常用代码片段
  2. 实时传输协议(RTP)
  3. linux服务器cuda,cudnn的安装与卸载
  4. 单点登录实现(spring session+redis完成session共享)
  5. 久谦咨询python笔试题目_【久谦咨询面试|面试题】-看准网
  6. LeetCode 737. 句子相似性 II(并查集)
  7. AngularJS学习(二)
  8. 802.11n协议解析(一)
  9. Matlab重建信号实验总结,实验三信号采样与重建(实验报告).doc
  10. Hibernate查询 内连接和外连接区别
  11. linux安装好的mysql rpm -qa |grep mysql不见
  12. Linux用户管理基本配置命令运用1
  13. Python百行代码随机生成姓名
  14. eterm协议指令解析
  15. 从MSDN我告诉你下载镜像
  16. MySQL第41题怎么评分_MySQL试题-测试、复习、查看
  17. 为何苹果不会成为一个手机公司?
  18. STM32处理器定时器分析(实现一个定时中断)
  19. Android VR Player(全景视频播放器) [10]: VR全景视频渲染播放的实现(exoplayer,glsurfaceview,opengl es)
  20. 拼多多 算法工程师-20180921

热门文章

  1. html 简繁转换 批量,繁简文件批量互转程序
  2. 华为matebooke能装鸿蒙系统吗,华为matebook e安装系统
  3. c语言中e什么作用是什么,c语言中%e是什么意思
  4. 如何关闭流氓软件弹窗广告
  5. 项目vite1.0升级到2.0打包遇到Some chunks are larger问题如何解决
  6. 曾抵押房子炒币、与老婆差点离婚! 如今这位80后中科院博士竟...
  7. 返利网app android版
  8. 阿里2018届实习生内推经历
  9. linux 路由配置工具下载,Linux/Openwrt路由安装配置UPNP服务提高迅雷下载速度
  10. 2021HW参考|防守方经验总结