前端时间一直琢磨Python爬虫,本来想写一个登陆学校系统的爬虫,顺便然后可以爬取绩点之类的,但是奈何学识不够,感觉对爬虫的认识不够多,无法登陆,今天偶然重新开始弄,发现好像可以了:
登陆成功代码.png
首先学校的登录系统好像不是纯种的html或者php页面,是一个用java的框架,中间的servelet去处理发出的请求,然后再返回所有的值。我用谷歌浏览器查看,发现大概流程:
请求流程:
-
首先是当我点击登陆的时候,会出现一个login.sec的一个界面,里面是用POST请求,请求如下:login请求.png
然后查看里面的Post的内容:
账号密码.png
然后从里面的Post的内容,大致可以分析出其中的作用:
- uid:就是用户的账户,也就是学号;
- username:就是去辨别是不是学生,老师的账号是纯英文,不是序列号,所以自动识别我为学生,格式是"学号@student"
- 两个URL:一个是登陆成功的URL,另一个是失败的URL
- 密码:这个就不用说了
- 坐标x,y:就是我点击"Login"的时候相对于这个图标的坐标(我暂时不知道这个是干啥用的,加密吗?还是辨别用户是不是用鼠标点击的,如果敲回车,那就是x=0,y=0)
- 然后从那个login的请求里面,第二个页面就是index.do文件,这个比较特殊,没有传输表单了,是用的是GET的请求,然后发了一堆Header,然后我作为测试,把浏览器的Header先拷贝过去(当然了包括cookie),然后就登陆,结果测试成功了。打印出来的response里面有我的名字,证明已经登陆进去了学校系统,但是由于我这个index.do页面的cookie是我从浏览器拷贝下来的,我注释掉之后发现是无法登陆的,我觉得我应该用python去自动保存cookie到本地的txt,然后直接加载,可能会比较好。(这个问题待解决)
(---未完待续,等我测试完毕更新了之后再发上来 :)