Python模拟登陆学校账户

原文链接:http://www.jianshu.com/p/ebe2ad5cda66

前端时间一直琢磨Python爬虫,本来想写一个登陆学校系统的爬虫,顺便然后可以爬取绩点之类的,但是奈何学识不够,感觉对爬虫的认识不够多,无法登陆,今天偶然重新开始弄,发现好像可以了:

2481474-a48ac24c5002933f.png
登陆成功代码.png

首先学校的登录系统好像不是纯种的html或者php页面,是一个用java的框架,中间的servelet去处理发出的请求,然后再返回所有的值。我用谷歌浏览器查看,发现大概流程:

请求流程:

  1. 首先是当我点击登陆的时候,会出现一个login.sec的一个界面,里面是用POST请求,请求如下:
    2481474-5617cb3b558c86e2.png
    login请求.png

    然后查看里面的Post的内容:


    2481474-fb636e2e6cfc5396.png
    账号密码.png

    然后从里面的Post的内容,大致可以分析出其中的作用:
  • uid:就是用户的账户,也就是学号;
  • username:就是去辨别是不是学生,老师的账号是纯英文,不是序列号,所以自动识别我为学生,格式是"学号@student"
  • 两个URL:一个是登陆成功的URL,另一个是失败的URL
  • 密码:这个就不用说了
  • 坐标x,y:就是我点击"Login"的时候相对于这个图标的坐标(我暂时不知道这个是干啥用的,加密吗?还是辨别用户是不是用鼠标点击的,如果敲回车,那就是x=0,y=0)
  1. 然后从那个login的请求里面,第二个页面就是index.do文件,这个比较特殊,没有传输表单了,是用的是GET的请求,然后发了一堆Header,然后我作为测试,把浏览器的Header先拷贝过去(当然了包括cookie),然后就登陆,结果测试成功了。打印出来的response里面有我的名字,证明已经登陆进去了学校系统,但是由于我这个index.do页面的cookie是我从浏览器拷贝下来的,我注释掉之后发现是无法登陆的,我觉得我应该用python去自动保存cookie到本地的txt,然后直接加载,可能会比较好。(这个问题待解决)

(---未完待续,等我测试完毕更新了之后再发上来 :)

转载于:https://www.jianshu.com/p/ebe2ad5cda66

展开阅读全文
博主设置当前文章不允许评论。

没有更多推荐了,返回首页