由于最近出于出成绩时期,每天都会查一下成绩,学校的教务系统cookie不操作一段时间会过期,又要重新登入.需要输入验证码.就感觉挺麻烦的,所以就搞了个自动查询吧.
待解决问题:
如何访问学校教务系统网站,获取数据.一开始我是想采用http协议get,post直接获取html数据的…不过实在有点懒了,还是直接用之前就用过的selenium库吧.
验证码问题:验证码的问题,我前前后后想了好几种解决策略吧,首先是尝试了COOKIE,想试试免登入,不过失败了.然后就是尝试绕过验证码,事实证明,虽然教务系统的服务器是土豆,不过也没那么好破解.第三条路就是图像识别了.关于图像识别我尝试了两种方案:
首先是pytesseract.我的理解就是一个图像识别引擎,不过直接用的识别率真的太菜了.然后我尝试对学校验证码降噪,一开始是二值化后,去掉细线.不过虽然学校验证码看着挺草率的两条线,搞起来挺要命的,有粗有细.不太好根据线的宽度进行降噪.我又想到了根据颜色来降噪.因为线是单独的一种颜色,取色器取色,再遍历像素,如果是线的颜色,就改为背景色.即使这样,识别度还是不高.在我以为要失败的时候.
想起了QQ截图自带的文字识别功能,一试…流批!没处理过的验证码都识别出来了,然后我就立刻去找有没有开放API,还真有.那验证码的问题也解决了.
————————————————
版权声明:本文为CSDN博主「乌鸦不像写字台」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rglkt/article/details/107498682