SDUFE CAS爬虫逆向思路与代码

工具准备
为了方便编写爬虫代码和逆向网站逻辑,我所使用的工具列表如下:
- Chrome/Firefox/Edge,用于网页代码逆向
- Charles,用于抓包
如果您也选择使用python作为代码编写工具,您需要安装下列库:
- requests,用于网络请求
- bs4,用于网页解析
- Crypto,用于加密
如果您对Charles的配置和使用不熟悉,您可以参考下列链接:
登录逻辑
在开始具体过程的逆向之前,我们需要对登录的整体逻辑有所了解。在此处,我们给出山东财经大学图书馆预约系统的登录逻辑。
首先打开图书馆预约系统主页,点击右上角的“登录”按钮,发现页面跳转至山东财经大学统一身份认证系统。
由于需要了解登录的具体逻辑,我们需要打开Charles软件进行抓包。
为什么不用浏览器自带的
Network
功能?因为登录环节涉及到了页面的跳转,而浏览器的
Network
功能只能抓取当前页面的请求,一旦点击登录发生页面跳转,Network
无法显示跳转过程中的网络数据包。
为了更加方便的分析跳转过程中的数据包,我们需要将展示窗口调整为Sequence
模式。在浏览器页面内输入账户和密码,点击登录。等待登录完成,返回Charles软件,点击上方的小红点暂停抓取以方便后续分析,如下图:
从下向上浏览每一个网络数据包,我们可以看到在大部分Method
为GET
的数据包内出现了一个Method
为POST
的数据包,而且Path
也与我们的登录页面相同,可以大胆地猜测该包就是提交登录数据的包。
点击此条记录,可以查看该数据包的详细信息,如下图:
此处仅展示了对我们分析较为重要的Contents
信息。如果您个人进行分析,最好观察数据包的所有信息。