项目背景:每天约羽毛球好累,有时候忘了约场还没有球可以打,有没有办法用计算机自动约场呢?

于是我登录预约平台发现咋验证码改了与字母验证码相比,这自动识别难度可增加太多了,既然有这个需求那只有硬着头皮上了,去Google搜索了一下看到python有个很好用的库ddddocr可以将点击验证码的文字部分与背景分割开,于是开始了漫长的开发之路

一、小试牛刀——登录

首先摆在我面前的第一个拦路虎是预约平台的登录,这个预约平台登录验证方式是通过SSO的方式验证登录的于是我尝试去Github上找同一学校的自动化脚本

1

,该脚本的登录实现解析如下:

  1. 首先初始化登录界面

  1. 将用户的账号密码发送到sso平台(吐槽一下,上传用户的账号密码竟然是用明文传输😂)

  1. 初始化用户信息,将用户姓名、部门、电话保存下来

<https://sso.scnu.edu.cn/AccountService/openapi/onekeyapp.html?app_id=61>

这个链接发送GET请求

  1. 将步骤4请求的返回值中的”Location”作为这次GET请求链接,保存这次GET请求返回值”cookies”中的’MoodleSession’

我在该脚本基础修改了一下步骤四中的app_id值,并且将步骤五中的保存内容改为GET请求返回值”cookies”

二、深陷泥潭——验证码

登录问题解决了,摆在面前的难关就是如何通过验证码校验了,首先先手动过验证查看网页向远程服务器发送了什么消息