上次我们教大家如何使用httpwatch来进行抓包,其实这不重要,重要的是如何使用获得的数据包,你能读懂数据包吗?好吧,我们今天就是用python来示范一下如何使用数据包。
先来设置两个url地址,第一个用于第一次访问,这样可以获得网站服务器发来的cookie,第二个网址是用于登陆的地址![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/65ba880b31210561f402ef5d08aee8d7582a6a3a.jpg)
引入两个模块,cookielib和urllib2![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/e1390a31dfb6326cadc7237b89532f632285603a.jpg)
接着,我们安装一个cookie处理器,代码如下,这个代码很多人不太能读懂,其实你会用就可以了,他们就是这个固定的形式,顶多改改变量的名字。你复制下来以后自己用就可以了,用多了,你再去看代码的意义,你就都懂了。![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/32a127723d03bbea38248afcea43d7d44931543a.jpg)
然后我们先访问一下网站,获得一个cookie,你不用管这个cookie该怎么弄,前面设置的cookie处理器会自动处理。![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/75af02324b18512c9f536213ad334884cce3493a.jpg)
接着,我们写一下postdata,也就是你要post的数据,因为我们打算登陆网站,所以postdata里肯定有用户名和密码,那么怎么知道该怎么写postdata呢?看你抓包得到的post数据。下面第一幅图是httpwatch抓包截图,点击postdata,看到post的数据,然后我们看第二幅图,就是python的写法。你自己感受一下。![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/e4b5e2f5ee0d3ace8b75c8df87e265e7350fbb3a.jpg)
![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/ba97ffd06de89a61a987fb2745e8b004551bad3a.jpg)
写完postdata以后,我们 要将postdata转码一下,让服务器可以解读postdata数据![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/6bbfdd14f1c595ee01630d9327530688902c9a3a.jpg)
接着设置headers信息,headers也是抓包得到的。同样的方式,你去写header内的信息![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/423041db3620b93a9d2b9a71ad0f8835dc8a8a3a.jpg)
![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/d400248ca608a50fc95eea3810cec7f88b77ff3a.jpg)
然后我们通过request方法来登陆网站,并返回数据,返回的数据存储在request中![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/e6ae36066b0192dd59e20c471a87031c98c0f03a.jpg)
通过rulopen方法和read方法来读取数据,并打印出来。![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/256eb672941fbee441784aeac1237971ff1de73a.jpg)
我们看到输出的结果,这说明我们虽然正确的模拟了登陆网站需要的post信息,但是没有考虑到登陆网站是需要验证码的,后期我们会看到如何处理验证码,如果你拿这个教程去处理没有验证码的登陆问题,那么你现在已经成功了。![网页数据采集:[3]python如何利用抓包数据](https://exp-picture.cdn.bcebos.com/979906196120a7cd72cc414689b375d7987bdc3a.jpg)