本文最后更新于 988 天前,其中的信息可能已经有所发展或是发生改变。
1. 说明
某校要求学生进入实验室前需要在线学习实验室安全知识 12 小时,再考试,网站每间隔五分钟需要手动点击确定,而此确定按钮是使用 window.confirm() + alert
产生,其会停止当前页面,所以不能使用 js 来控制按钮,索性写个 python 代码挂在我的树莓派上,挂一夜就能考试答题了。使用整个网站都是校内内网架设,所以程序只能在校园网下运行呦。程序要求 python3,以及需要安装 requests
, beautifulsoup4
,安装命令如下:
pip install requests==2.18.4 beautifulsoup4==4.6.0
程序思路和过程以后闲了再更新吧,下载见 #4.代码下载(我有写了两个版本一个是直接运行的脚本,一个是命令行运行,详细见代码readme),直接运行的版本使用很简单,修改自己的账号,在程序一开始的 userData
。例如我的 userData
:
userData = {
'xuehao': '1704310334',
'password': '123456',
'postflag': '1',
'cmd': 'login',
'role': '0',
'%CC%E1%BD%BB': '%B5%C7%C2%BC'
}
如果出现错误:error code:{}, 可能加密参数发生了变化,参数获取方法见说明,有问题请联系
,此时需要重新获取参数,详细见下,如果不懂,加我QQ1415615232。
2. 加密参数获取
加密参数自获取方法(谷歌浏览器为例):
- 打开网址,右击网页选择“检查”打开开发者工具,(如 figure 1)
figure 1
-
点开发者工具的 “Network”,再勾选上 “Preserve log”,(如 figure 2)
figure 2 -
正常登陆自己账号,登陆之后在开发者工具 “Network” 下找到,
exam_login.php
(如figure 3),单击后得到详细信息,向下翻到“Form Data” (如figure 4),再点击绿框的 “view URL encoded”,得到加密参数,(如figure 5)figure 3figure 4figure 5 -
将上面获取的参加替换到
userData
,即可。
3. 效果
经过一夜测试,程序蛮稳定。效果图:
4. 代码下载
本校同学可以找我代挂。代码下载见评论区压缩包。
单击下载python代码
目前超时等待时间是3s(代码中
timeout
),超过3s就会停止访问并返回错误。我刚测试发现这个时间太短,建议更改为10s…超时时间已修改为10s