您的位置:首页 > 理论基础 > 计算机网络

数据抓包(网络爬虫)-正方教务管理系统登录

2016-05-19 19:43 344 查看
本文是基于java EE6.0 + HttpClient + fiddler为基础的。

最近在学jsp,闲来无事,做点东西锻炼锻炼,也可以学习学习,想学习数据抓包。第一印象就是我们学校的正方教务管理系统,先拿它开涮。

好,我们现在进入正题,我这边是jsp的网页,所以jsp的环境配置我不说了,就着重讲一下这个抓包需要的工具吧:Fiddler,当然我这里还有jsp用到的HttpClient-jar包

我就简单说明一下我们抓包需要用的功能:

1、当访问记录过多时,如何清除访问记录。


2、如何管理监控的软件(默认浏览器是加入监控的,即浏览器访问Internet会被记录)


 

3、查看请求数据方式(1-鼠标拖拽请求网址,多用于GET请求)


 

4、查看请求数据方式(2-选择Inspectors,多用于POST请求)


 

 了解了基本功能,我们现在去我们教务管理系统试试吧

首先,我们清空访问记录,访问一下我们学校(四川理工学院)的教务管理系统,看看有什么结果(这里我是吧cookie删除了访问的)。

 


我们获取到的cookie是:Set-Cookie: ASP.NET_SessionId=m5ys1p55i3ffk145s2u5twib; path=/

 

 

接着我们第二次访问


 

我们发现第二次的请求中的cookie正好是第一次(删除了cookie访问)接收的cookie,这对于我们理解登录过程是很有用的。

 

 

好的,接着我们尝试登录教务管理系统,登录成功后,我们看看什么样的数据包

我们看登录请求的头部信息:


 

似乎没有找到我们的用户名,密码,验证码信息,不着急,我们说过post提交的,我们可以通过webforms来查看:


 

我们发现了,原来登录教务管理系统是发送几个参数,配备一些请求信息来实现的,

但是关于这些参数,我们有几个疑问:这个

__VIEWSTATE

dDwyODE2NTM0OTg7Oz5Xow52LfADXBpsau1uxa8+qTHKbQ==

是什么意思?怎样获得?还有就是验证码的问题,怎么获取验证码?

带着这个问题,我们去看看我们教务管理系统首页的源代码:

 


好的,我们在源代码中找到了需要的__VIEWSTATE参数。

接下来是验证码,为了不拐弯抹角,我将自己吸取的教训直接转换为方法,教大家这个验证码的获取:


 

在教务管理系统首页的源代码中我们找到了验证码的获取网址,我们再去看fiddler中的这个网址:


 

 

在此说明我学习的成果:获取验证码是要带着cookie获取的,如果直接访问验证码图片网址可以获取到图片,但是没有任何作用,所以在模拟登录过程中一定要带着cookie一起访问,这个cookie就是登录时候用的cookie,你可以监视“点击看不清换一张”这个请求过程。

搞清楚登录原理之后我们就可以模拟登录过程了。

流程如下:

1、模拟访问(模拟无cookie的访问)首页的过程。

2、获取到响应的头部信息, 将获取到的cookie记录下来,后面会用到。获取源代码中的VIEWSTATE并且记录下来,后面也要用。

__VIEWSTATE

dDwyODE2NTM0OTg7Oz5Xow52LfADXBpsau1uxa8+qTHKbQ==

3、将获取到的cookie添加的新的请求头部,用于获取验证码,将验证码添加显示出来(后面会讲一个自动识别验证码的功能代码)。

4、将必要的参数封装到请求中,模拟登录请求。

 

完整工程的源代码

 

效果截图:



点击登录按钮之后



 后面有时间再讲教大家获取课程表的信息,今天就到这儿了哈,有问题的可以联系我的QQ:917388970我们一起探讨嘛。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息