自动学习校内安全学习课程


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. 加密参数获取

加密参数自获取方法(谷歌浏览器为例):

  1. 打开网址,右击网页选择“检查”打开开发者工具,(如 figure 1)

    1555594692533 figure 1

  2. 点开发者工具的 “Network”,再勾选上 “Preserve log”,(如 figure 2)

    1555594856564 figure 2

  3. 正常登陆自己账号,登陆之后在开发者工具 “Network” 下找到,exam_login.php (如figure 3),单击后得到详细信息,向下翻到“Form Data” (如figure 4),再点击绿框的 “view URL encoded”,得到加密参数,(如figure 5)

    1555594998852 figure 3

    1555595334651 figure 4

    1555595369522 figure 5

  4. 将上面获取的参加替换到 userData,即可。

3. 效果

经过一夜测试,程序蛮稳定。效果图:

1555641476695

4. 代码下载

本校同学可以找我代挂。代码下载见评论区压缩包。

评论
发表评论 说点什么