Charles抓取App网络请求

抓包工具:

Mac:Charles 密码: yyk4
Windows: Fiddler

Charles使用:

一、设置:

1).参考:唐巧-Charles设置
2).将Mac ip 设置为IPhone的代理
打开 终端 获取IP

codeMac-mini:~ co$ ifconfig en0

en0: flags=8863 mtu 1500
 options=10b
 ether ac:87:a3:30:6e:17 
 inet6 fe80::ae87:a3ff:fe30:6e17%en0 prefixlen 64 scopeid 0x4 
 inet 192.168.0.206 netmask 0xffffff00 broadcast 192.168.0.255
 nd6 options=1
 media: autoselect (1000baseT )
 status: active
codeMac-mini:~ co$ 

IP为:192.168.0.206

3). 设置iPhone HTTP代理
打开iPhone->设置->无线局域网->当前连接的网络->手动,将上一步获得的服务器地址填入对应输入框,端口号填写8888即可。


Charles抓取App网络请求_第1张图片
iPhone配置

iPhone配置

二、抓取WEAR中的数据

1). 打开WEAR
如果是第一次,可以看到Charles弹出的请求连接确认框,点击Allow。


Charles抓取App网络请求_第2张图片
第一次连接的确认框

第一次连接的确认框

2). 查看请求
可以看到,在进入WEAR以后,就开始进行主页模块的数据请求,这时就需要通过请求的响应次数来粗略判断下具体的请求地址了。在Charles中,每有请求响应,地址列表就会有黄色高亮。


Charles抓取App网络请求_第3张图片
黄色高亮表示有新的响应信息

黄色高亮表示有新的响应信息

我发现http://www.wearzozo.cn/coordinate/9k8r0s/ 这个地址闪得很频繁,打开查看以后可以看到这是主页模块所有的图片地址。不难看出,WEAR如此庞大的图片数据有独立的服务器作为支撑。
3). 查看用户数据
图片找到了并不能达到最终目的,因为我需要的5W用户的数据,所以继续找。然后找到了一个域名为http://api.wear.jp 的请求地址,根据命名经验,可以很直观的看出这是一个专门给客户端提供接口的服务器地址。
展开v1发现里面有两个子目录ranking与timeline,这两个子目录应该分别对应了搭配与新动态模块。
下面就以ranking为例:
在Overview中可以看到ranking的请求地址为:

http://api.wear.jp/v1/ranking/snaps?pageno=1&pagesize=33&group_id=1&period=1&country_id=13

请求方式为:

GET

内容格式为:

application/json
Charles抓取App网络请求_第4张图片
ranking中的请求信息

ranking中的请求信息

然后在到Response中可以看到返回的数据格式是Json,并且从它“见名知意”的key中,可以直接推断出每一个字段的含义。


Charles抓取App网络请求_第5张图片
返回的Json值

返回的Json值

三、保存信息到本地

既然已经找到的用户列表,那么抓取用户信息就easy了。可以写脚本来抓取,当然作为iOS开发者,也可以在Xcode中写一个发起网络请求的App来进行抓取,读到数据以后,保存到模拟器沙盒就行了。
具体的抓取步骤就不讲解了,也不清楚是否侵权,所以还是慎用得好。

四、Charles其他用法

关于Charles的其他功能,有空会在后续文章中讲解到。

参考:原文链接

你可能感兴趣的:(Charles抓取App网络请求)