我用Python做了一个超级简单上手的中考成绩网页

原定于2022年7月12日出成绩的广州中考,却因为改卷老师的改卷速度,提前在2022年7月9日发布了成绩,别看这短短的三天,7月9日一出成绩,朋友圈哀嚎一片,大家都觉得今年的分数线太高了。就那我自己举例子,我的社交媒体中只有一两个考的不错的人公布了自己的成绩。然后,我就看到了一条来自我妈的转发信息。

请注意,本程序仅供学习使用,请不要用于任何非法用途

在这里插入图片描述
是这样的
在这里插入图片描述
还有两个不可思议的
在这里插入图片描述
虽然后边证实这些是假的,在感叹的同时,我也在心中有了一个小小的计划,咱们为何不能通过咱们的编程“造假”,在朋友圈当中转发一个实际上不是自己而是伪造的分数呢,于是,咱们说干就干!

捣鼓中考官方网页

首先咱们登录后点击“综合查询”,然后看一看咱们的分数页面
在这里插入图片描述
然后一番操作之后,我们可以发现成绩页已经出现了
在这里插入图片描述
然后,咱们CTRL+S 保存下整个页面 记得选择MHTML格式的
在这里插入图片描述

然后,我们就可以获得整一个网页。我也将我自己保存下来的网站文件传到了网盘上边,所以大家点击这里,就可以下载了

在这里插入图片描述

根据常识,我们可以得知,MHTML文件中的中文是采用Quoted-printable编码的。然后这个编码的方式就令我眼前一黑。最终在一番摸索下,我们终于知道了如何进行编解码。详细可以看看这位大佬的文章Python (巨蟒) 简易实现 quoted-printable 编码

在这里插入图片描述
所以在上传的文件当中,其实考生名被我处理成了“我的名字”,那么接下来的一番操作,我们可以人工先尝试操作一遍,然后再让程序帮我们运行。

手动操作

http://www.hiencode.com/quoted.html

这个网站可以帮我们完成Quoted-printable的编码,我们打开并选择gb2312的选项

在这里插入图片描述

打开SublimeText,导入MHTML文件,按下CTRL+F 进行查找=C4=E3=B5=C4=C3=FB=D7=D6
在这里插入图片描述
在工具中输入自己的名字,例如王大牛
在这里插入图片描述
在Sublime Text中按下Ctrl+Shift+F 并将获得的编码复制到REPLACE的地方
在这里插入图片描述
重新刷新页面可以看到,中考查询界面已经被我们更改
在这里插入图片描述
接下来再用CTRL+SHIFT+F 查找搜索咱们的语文成绩,以上图的112为例
在这里插入图片描述
然后咱们直接更改分数,动一动邪恶的小手指
在这里插入图片描述
让老师们开心的事情发生了!
在这里插入图片描述
但是我们还是可以看到下面有一些破绽,所以咱们继续更改
在这里插入图片描述
更改一下这两行的一点点代码在这里插入图片描述
我们发现这简直是完美
在这里插入图片描述

程序制作

刚刚既然已经过足了手瘾,那么现在就是真正的时刻,我们应该用我们的代码知识来进行编程啦,在编程之前,我对下载下来的文本进行了一些处理,这对我们的后续编程工作有益。(实际上就是将几个难找的地方改成了中文)

创建一个python文件,取名“HSEES Changers” HSEES是High school entrance examination scores的缩写。

接收文件HSEES.mhtml

在这里插入图片描述
创建函数,直接更改我们文件中的内容
在这里插入图片描述
然后咱们完善一下这个时间这个小瑕疵,并在这里进行转换
在这里插入图片描述
最后咱们使用最丑陋的控制台输入来进行整理
在这里插入图片描述
于是,我们整一个程序就大功告成了!
在这里插入图片描述
在这里插入图片描述

# HSEES 中考分数修改器
# 请勿用于除学习外的任何非法用途
import requests
from bs4 import BeautifulSoup
import datetime

# 由于本人实在是搞不懂如何弄GBK编码所以只能在网上找了一个接口 该接口可能随时失效
def requests_quopri(msg):
	data = {
		"text" : msg,
		"flag" : "quoted",
		"encode_flag" : "gbk"
	}
	quopri = requests.post("http://www.hiencode.com/ctf/ctf_encode",data = data)
	quopri = quopri.text
	# print(quopri)
	soup = BeautifulSoup(quopri,"html.parser")

	quopri_show = soup.div.div.pre.text
	return quopri_show

def changers(chi="120",mat="120",eng="120",pol="90",his="90",phy="100",che="100",pe="70",ms="810",same="1",name="王大牛",num="0112280000"):
	qp_name = requests_quopri(name)
	# print(qp_name)

	# 获取时间
	date = datetime.date.today()
	year = date.year
	month = date.month
	day = date.day

	now_date = str(year)+"年"+str(month)+"月"+str(day)+"日"
	qp_date = requests_quopri(now_date)

	with open("./HSEES.mhtml") as hsees:
		hsees_line = hsees.read()
		# print(hsees_line)

		hsees_line = hsees_line.replace("语文",chi)
		hsees_line = hsees_line.replace("数学",mat)
		hsees_line = hsees_line.replace("英语",eng)
		hsees_line = hsees_line.replace("道法",pol)
		hsees_line = hsees_line.replace("历史",his)
		hsees_line = hsees_line.replace("物理",phy)
		hsees_line = hsees_line.replace("化学",che)
		hsees_line = hsees_line.replace("体育",pe)
		hsees_line = hsees_line.replace("总分",ms)
		hsees_line = hsees_line.replace("同位号",same)

		hsees_line = hsees_line.replace("名字",qp_name)
		hsees_line = hsees_line.replace("学号",num)
		hsees_line = hsees_line.replace("时间",qp_date)

	with open("./FakeScore.mhtml","w+")as fs:
		fs.write(hsees_line)
		fs.close()

def show_score():
#chi="120",mat="120",eng="120",pol="90",his="90",phy="100",che="100",pe="70",ms="810",same="1",name="王大牛",num="0112280000"	
	chi = input("请输入你的语文成绩:")
	mat = input("请输入你的数学成绩:")
	eng = input("请输入你的英语成绩:")
	pol = input("请输入你的政治成绩:")
	his = input("请输入你的历史成绩:")
	phy = input("请输入你的物理成绩:")
	che = input("请输入你的化学成绩:")
	pe = input("请输入你的体育成绩:")
	ms = int(chi)+int(mat)+int(eng)+int(pol)+int(his)+int(phy)+int(che)+int(pe)

	import random
	same = random.randint(1,100)
	name = input("请输入你的名字:")
	num = input("请输入你的学号:")

	print("程序正在自动生成成绩中... 请稍后 ...")

	changers(str(chi),str(mat),str(eng),str(pol),str(his),str(phy),str(che),str(pe),str(ms),str(same),str(name),str(num))

	import os,webbrowser
	webbrowser.open("file:///"+os.path.realpath("FakeScore.mhtml"))
	
show_score()

祝福各位中考考生考上理想的高中呀!

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地摊主老袁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值