黑大助手 的功能:
黑大助手是一款为黑龙江大学在校学生服务的 Android 端应用,提供 查课表,查成绩,查考试,问答社区以及获取校内最新资讯的功能。
下面开始整理整个项目从构思到完成这个过程的一些学习经历
由于学校官方移动应用 i黑大实在太难用,而且数据更新不及时,消息推送不及时,所以想着自己写一个应用,可以查看一些学生信息,比如课程表,成绩表,考试安排等信息,思路还是比较简单的,就是使用爬虫抓取数据,然后放在移动端展示。
有了思路,接下来就是实现思路的过程,从思路来看,这个项目分为两部分:后端爬虫抓取数据,移动端展示数据
后端
其实最初设想的时候是没有考虑到使用后端的,爬虫可以直接在移动端实现,Java 中的 Jsoup 是一个很不错的网页解析库,用它可以在 Android 端很轻松的实现爬虫功能,但是考虑到可复用性和可扩展性(比如要想在 iOS 上开发,那就还要再写一个 iOS 上的爬虫,或者校园网网页改版了,移动端也要跟着改爬虫代码…),最终没有选择这样的方案,最终决定搭建一个后台,用 Python 编写爬虫,解析成 json 格式的数据,提供接口给移动端调用
爬虫
目前主流的云服务器都支持 Python 开发环境,而且学习 Python 有一段时间了,正好用来练练手,于是选择使用 Python 写爬虫和部署后端应用。起初的模拟登录过程很容易实现,只需要观察页面跳转,和一些数据传递,这里推荐一下 Windows 上的 Fiddler,一款很好用的抓包工具,因为校园网的登录页面中,如果登录成功,需要打开新窗口,如果使用浏览器自带的开发者工具查看网络,观察起来会比较费劲,而如果使用 Fiddler4 查看,计算机上所有的网络请求都会被记录下来,按着顺序查看就可以了,这样子对于分析网页数据流程很方便。