依照思路来,第一步就是难点和重点,搞清楚了网页登录的内部逻辑,才能进行下一步的模拟登录。
这里,我的浏览器是IE11。因为已经看了一篇手把手教学分析登录逻辑的文章,所以这里写的要节省多了。
通过分析发现登录的网址是https://passport.baidu.com/v2/api/?login
查看请求正文信息,通过查看该部分信息可以知道向服务器提交了什么数据,然后分析查找这些数据,最后构造出来这些数据,用程序模拟发送,这样就可以完成了模拟登录。
所以重点就集中了搞清楚要发送那些数据,因为数据太多,有些数据可以不必发送(比如缺省值),有些数据虽然有值但是也不必发(比如登录时间等)但是有些数据的值需要顺藤摸瓜查找出来(这些每次登录值都不同,但是这些值又必须要发送才能登录成功),有些值看起来是固定不变的我们就设置成一样的发送就是了。
以下代码为某次登录百度的请求正文:
- staticpage=http%3A%2F%2Fwww.baidu.com%2Fcache%2Fuser%2Fhtml%2Fv3Jump.html&
- charset=utf-8&
- token=7df2c14c85ae5b4ac28e55671d91f835&
- tpl=mn&
- subpro=&
- apiver=v3&
- tt=1412564377876&
- codestring=&
- safeflg=0&
- u=http%3A%2F