谈到抓包工具,我们很多的浏览器都内置了抓包工具,还有很多优秀的插件,这里我用到的是:charles。(当我说到这个工具的时候,你可能会,哦,原来是这个啊,网上也有一堆教程,但是这里我想用多个例子来示例)。
至于Charles的安装说明,请看链接:charles使用教程指南
接下来我就来讲3个实例:(记得Charles代理得开,手机抓包时,wifi设置代理)
- 第一我们来抓今日头条网页的一个新闻链接,来看看界面
此时clear下charles 的内容,等下会好看一点。点击该链接,我们观察到Charles上的内容。
我们要选择Sequence 模式(请求从上往下一次进行)。当我们点击链接时,我们会发送http请求,请求经过Charles代理,然后转发给服务器,所有我们可以看到数据类容。我们来详细看看。
- 图上画红圈的上面有个球,表示自己点击数据请求,下面的一些图片标志,请求的是图片。我们点击这条连接,看到下面有Request,Response。
- 观察Request:下面有Headers(请求的头部信息),Cookies(请求的Cookies),Raw。由于是Get请求,就没有Form选项了。我们点击Overview,会看到。
你没有看错,这里的URL就是你的请求路径,你直接点击这条路径就会直接进入这个网页。Response Code200 就表示响应成功。Method,kept alive 等等。
3.观察Response:
下面有Headers(响应头部),一些其他的选项,由于响应返回是Html我们点击Html,正如图片所显示,我们正确的取到了内容。
- 我们来抓手机版今日头条,记得连上电脑wifi,设置手机WiFi信息如下: 代理设置为手动,你主机的ip,端口即Charles的代理端口 默认8888.
看看要抓的信息:
我来抓女生是怎么看待男生抽烟的。
我们点击这条链接会看到:
我们来分析:
- Host:60.29.248.126,应该是今日头条他们服务的ip地址,他们的服务器项目就挂在上面了(我个人猜测哦,)响应返回的是一个JSON字符串,他们客户端根据响应的JSON字符串,做相应的解析,然后去请求数据。里面还有很多加密的。(如果想要了解里面,可以去研究一下返回的JSON字符串,里面会包含所有他响应的内容,要么是转化,要么是请求链接。)
我来抓我自己写的一个APP的数据:
这是一个简单的登录:我们看到HOST:192.168.191.1:8080.应该就是我电脑开的web服务器了。Path:就是我的请求路径了,下面的Request的Form就是我请求的参数了。phone,pwd。通过这个请求会响应一个对应的信息(xml,html,json都有可能)。
我抓过QQ,微信,他们都是加密过了的,流程非常复杂,有兴趣的可以去试试。
这一讲就讲到这里,有不对的地方,菜鸟希望大家指出。
下一讲,HttpClient,以及HttpClient的工具封装类。讲完这个,我们就可以用java在后台,模拟这个请求,抓取数据,并分析数据。