您的位置:首页 > 编程语言 > Python开发

python-46: 找到模拟登录中的数据

2015-12-07 20:29 447 查看
好了,终于可以回到我们的模拟登陆了,前面讲了怎么使用浏览器的工具找到最新的cookies以及如何直接使用cookies登陆网站,不提一下的话连我自己都要忘记了

同时我们也知道 cookies 具有时效性,这就带来了一个很尴尬的问题,我总不能每次运行代码之前都要先手动登录然后获取 cookies,再写入程序中进行登录吧,所以我们最后,还是得从登录的流程下手,我们需要了解登录的过程中浏览器做了什么事情,发送了什么数据,等等

我们虽然不知道登陆的整个详细的流程是怎样的,但是我们知道在登陆的时候,会输入用户名和密码,然后提交到服务器,之后服务器进行一系列操作,这个操作的流程是怎样的我们现在不用去理会,如果验证通过,服务器则会向浏览器返回数据,我们要实现模拟登陆,就必须得知道浏览器是怎么把数据发送出去的,实际上,我们通过浏览器的工具就可以将这些信息找出来

首先打开一个登陆界面,按F12调出调试界面



在点击登陆按钮之后看看什么东西被记录下来了



有很多的GET,还有一个POST,GET我们已经很熟悉了,这是浏览器和服务器的一种很常见的请求-响应的方式,现在我们来看看POST,我们把它点开来看看



这里有password 和 username 的两个内容,这好像跟我们输入的用户名和密码一样,难道这就是浏览器向服务器发送的数据吗?

这确实是的,输入POST上网去查一查就知道了嘛,在下一节我们将会详细的讲解POST的相关知识,这节还有另一个重要的内容

火狐浏览器的F12 是我们到现在一直使用的工具,不能否认它真的很好用,但是在抓取数据这一方面,它的功能就没有那么强大了,抓取数据这里有一个专业术语叫做"抓包",有好多很好的工具能让我们更方便的抓取到我们想要的数据,比如windows下的fiddler,跨平台的wireshark 等等,要善用这些工具,因为抓取的数据越详细,越有利于我们分析登陆的过程,这里给大家介绍火狐浏览器的一个很好用的插件 httpfox

至于为什么要使用抓包工具呢,前面已经说了,抓包的数据越详细,越有利于我们分析登陆过程中的数据交互,另外,还有一个重要的原因是,F12这个工具有时候会自动跳转,以至于我们找不到POST信息,这种情况很常见,尤其是在你的浏览器中保存有上一次登陆的cookies的时候,我曾经也很苦恼这个问题,直到我使用了httpfox

httpfox 很容易安装,在火狐浏览器的附加组件那里搜索并安装即可,安装完了还有一个问题,就是怎么调出httpfox的调试界面,这曾经也是我苦恼的又一个问题,直到某天偶然遇到一组快捷键组合: ctrl+shift+F2,调出来之后的界面应该是这样的



至于使用方法很简单,在你想要抓包之前,按Start,觉得已经抓取到了想要的数据可以停止了,就按Stop,在下一次抓包之前,如果想要清除前面抓取的数据,可以按Clear,我们来操作看看吧



这里我们看到除了有数据交互的类型之外,还有url,显示了是跟哪个网站进行的数据交互,这个 url 就是你实际提交数据的网址,它在模拟登陆的分析过程中是很重要的,我们再来点开一个POST看看是什么情况



在下拉的菜单中我们看到有Headers,Cookies,Post Date,等选项,其中最主要的是Post Date,我们依然可以从里面找出我们登陆的用户名和密码,那么,Post Date里面这么多的数据,我们都需要写完吗?这个不是很好说,可以从源码里面分析最主要发送的是什么数据,但是你也可以一股脑将所有数据写下去

好了,又是截图又是讲解的,真luei,我们下一节将会学习python 爬虫中传送数据的两种方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 爬虫