南京车险业务联盟

一卡通余额查询背后的故事

大猿日常 2022-05-12 07:28:24

还记得之前的三顾一卡通余额查询的文章嘛?

三顾一卡通余额查询

按照文章里的方法,我们在多次努力下终于登录上校园网,查到了自己学生卡中的余额。

可是,这一切要经过多少步呢?我们来细数一下:

  1. 连接到校园网

  2. 来到一卡通查询网站

  3. 由于网站兼容性问题,要根据给出密码键盘输入相应密码(手机上操作基本是不能的,只能通过电脑来查询)

  4. 输入一个难以识别的验证码

  5. 登录

  6. 选择菜单,查询到余额

如果忘记自己还有多少余额,想去查一下的话,按照上面的操作,还不去餐厅刷一下卡方便实在。

新方法

这时候爱动脑筋的大猿,通过结合在课堂上学到的知识,想出来一个好的方法,去便捷的查询一卡通余额,这个方法就是 —— 爬虫 。

什么是爬虫呢?

爬虫是通过是一种按照一定的规则,自动地抓取网上信息的程序或者脚本

—— 百度百科

通俗来说爬虫就是通过写一个程序,模拟人去浏览网站,爬去到相关的数据并且反馈回来。对于python来说3行代码就是一个基本的爬虫

import requests
resp = requests.get('http://www.intyut.cn')

print(resp.text)

只需要上面的几行代码,你就能看到在太理网站的网页源码啦。

如果要深入的话你肯能需要:html协议requests库,beautifulsoup4库 和 正则表达式 不然你的爬虫可能寸步难行。

爬虫的用途?

关于爬虫的用途,其实百度蜘蛛就是一个巨大的爬虫,大家百度到的东西都是它一个个网站爬取到的结果。类似还有携程上订火车票,简单来说就是通过爬虫代替人去12306购票,至于加速包,就是给爬虫设置一个访问频率去看网上还有没有票,当然还涉及很多复杂的东西 (PS:大猿很敬佩携程的技术,能做到那样真的超级厉害,在这里举例是为了大家便于理解,并无贬低之意)

大 BOSS 验证码

当然用爬虫也遇到了一个问题 —— 验证码。

验证码(CAPTCHA),全称为全自动区分计算机与人类的公开图灵测试

看着全称是不是很高大上?以后还可以和别人开玩笑说刚刚参加了一个图灵测试!而验证码的目的就是为了防止爬虫,防止恶意爬虫对网站资源的消耗。犹如一个大 BOSS (游戏关卡有难度的怪物),阻碍着我们爬虫的去路。
而学校一卡通网站给出的验证码是下面这个,计算十位数内的加减法,看着这个扭曲的字体,对人来说可能都可能写错,更别说程序了。

但是! 爱动脑筋的大猿,结合课堂上所学到的知识,想到可以用 卷积神经网络(CNN) 来训练一个模型去识别验证码。

卷积神经网络

那么什么是卷积神经网络呢?

大家不要被解释吓到了,其实这里面主要涉及到就是高数里面偏微分/梯度相关的知识,所以大家千万不要望而却步,想学习的话推荐课程有吴恩达老师和李宏毅老师的课程~

了解了理论之后,我们可以用 Tensorflow 这个由谷歌开源的数值计算库,去做一个神经网络。


通过使用tensorflow,我们的核心代码只要几十行,就可以搭好一个卷积模型,去识别验证码。之后收集数据、调参、训练之后模型终于有了一个较好的准确率,然后我们就可以使用了,不过在这里本文就不深入谈论啦。

通过训练,我们可爱的小爬虫就获得了识别验证码的能力,它就能登录到学校的一卡通网站,去帮助大家查询一卡通余额。并且大家大可放心隐私问题,我们并不会保存任何余额信息。下面是一卡通查询结果


不过大猿发现网站性能方面会有一些问题,比如充了钱过一会才会显示出来,或者是历史查询如果太久之前的话会很慢,还有可能查询失败。所以做了一定的限制:在历史查询只能查询近一个月的,但是实际上校园卡网站支持查询很久以前的消费记录的。



Copyright © 南京车险业务联盟@2017