最近开发App的时候需要用到大量其他应用的数据,但接口不公开,所以想到了抓取。差不多要读到5W的用户数据,采用的是找到数据接口,然后不停发请求的方式。用到的抓取工具是Charles,本文讲解的应用是WEAR,一款鬼子的应用。

前期准备:

下载Charles,本文不会讲解Charles的使用,不会用的可以看巧哥的文章

环境信息:

Mac OS X 10.10.3

Xcode 6.3

iOS 8.3

Charles 3.10.1

正文:

一、基本设置

在抓包之前,需要对Charles与iPhone进行基本设置,这些设置均转自唐巧的文章《截取iPhone上的网络封包》部分。

1. Charles上的设置

打开Charles->Proxy->Proxy Setting,设置代理端口为8888,并勾选Enable transparent HTTP proxying。

Charles配置

2. iPhone上的设置

1). 获取MAC上的IP

打开终端,输入命令:


ifconfig en0

找到里面的IP地址:

找到本机IP

2). 设置IPHONE HTTP代理

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

iPhone配置

二、抓取WEAR中的数据

1. 打开WEAR

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

第一次连接的确认框

2. 查看请求

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

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

我发现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

ranking中的请求信息

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

返回的Json值

三、保存信息到本地

既然已经找到的用户列表,那么抓取用户信息就easy了。可以写脚本来抓取,当然作为iOS开发者,也可以在Xcode中写一个发起网络请求的App来进行抓取,读到数据以后,保存到模拟器沙盒就行了。

具体的抓取步骤就不讲解了,也不清楚是否侵权,所以还是慎用得好。

转http://www.saitjr.com/ios/ios-use-charles-fetch-web-request-in-app.html

使用 Charles 抓取 App 网络请求的更多相关文章

  1. Fiddler 抓取 app 网络请求数据

    通过设置代理在同一个路由器下可以通过 Fiddler 实现抓取 app 的网络数据 步骤如下: 手机(Android ,iOS 都可以)和 PC 连到同一个路由器 对手机连接的 WIFI 设置代理,代 ...

  2. charles 抓取app https 请求

    测试需要抓取app的https请求链接,百度了一下教程,能设置的都设置成功了,但就是抓取不成功,显示如下图 无奈之下还是用谷歌搜索了下(网速极慢),但是庆幸的找到了问题的答案,原因还是手机设置的问 打 ...

  3. 使用Charles抓取APP之HTTPS请求

    Charles是一款非常好用的抓包工具,通常使用它来进行APP开发抓包调试,尤其是HTTPS请求. 一.安装Charles 去官网(https://www.charlesproxy.com/)下载软件 ...

  4. charles 抓取app端 https 请求

    测试需要抓取app的https请求链接,百度了一下教程,能设置的都设置成功了,但就是抓取不成功,显示如下图 无奈之下还是用谷歌搜索了下(网速极慢),但是庆幸的找到了问题的答案,原因还是手机设置的问 打 ...

  5. Ubuntu安装配置Charles,抓取http网络请求包

    http://blog.csdn.net/lylddinghffw/article/details/75322262

  6. Charles抓取手机https请求

    1.下载Charles工具,3.92破解版:http://pan.baidu.com/s/1cko2L4 密码:chmy 2.安装SSL证书,默认安装就可以 3.证书安装成功后,点击详细信息--> ...

  7. Fiddler将笔记本设置代理,抓取手机网络请求包

    第一步:下载fiddler,下载地址:http://www.telerik.com/download/fiddler 第二步:安装fiddler,略过... 第三步:启动fiddler,启动后界面如下 ...

  8. 对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App)

    对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App) 实验目的:对比使用Charles和Fiddler两个工具 实验对象:车易通App,易销通App 实验结果 ...

  9. Charles抓取https请求

    最近公司将Windows产品的http请求,替换成https请求了,当https请求超过5次失败,就自动切换回http请求.测试时使用Charles抓包测试. 一.http抓包 http抓包比较简单, ...

随机推荐

  1. SpringMvc+jQuery 文件拖拽上传、选择上传

    最近做了个简易的基于boostrap的文件上传功能,jsp版本的,后续会完善更多的功能,不过现在已经能用了,需要的小伙伴,直接引用下面的文件内容直接copy到自己的项目中就ok了,效果如图: file ...

  2. Linux记录-lsof打开文件工具常用操作

    lsof `which httpd` //那个进程在使用apache的可执行文件 lsof /etc/passwd //那个进程在占用/etc/passwd lsof /dev/hda6 //那个进程 ...

  3. ACM-ICPC 2018 焦作赛区网络预赛 L Poor God Water(矩阵快速幂,BM)

    https://nanti.jisuanke.com/t/31721 题意 有肉,鱼,巧克力三种食物,有几种禁忌,对于连续的三个食物:1.这三个食物不能都相同:2.若三种食物都有的情况,巧克力不能在中 ...

  4. Centos7安装官方JDK

    一.下载jdk最新版本版本 链接地址:官方地址 二.上传jdk到centos下 三.检查当前linux系统上是否有jdk,linux命令:rpm -qa | grep java 查询结果: 卸载掉系统 ...

  5. [Android] Android 使用 Greendao 操作 db sqlite

    Android 使用 Greendao 操作 db sqlite GreenDAO是一个开源的安卓ORM框架,能够使SQLite数据库的开发再次变得有趣.它减轻开发人员处理低级数据库需求,同时节省开发 ...

  6. 学习笔记——xml的入门及解析

    需求:根据配置文件创建类,并调用方法 分析:1.XML 2.解析XML 3. 根据全限定名创建对象,调用方法 XML: 可扩展的标签语言 作用:存储数据.(主要用于配置文件) 后缀名.xml 书写规范 ...

  7. U盘中毒后变为快捷方式的解决方法

    今天神奇地发现,如果U盘中毒后,变为快捷方式,那么你可以有三种解决方法: (1)在网上下一个脚本程序,将文件恢复: (2)使用U盘查杀的工具,一般的工具应该有U盘文件恢复这一项,比如金山的杀毒软件: ...

  8. Unable to find CMake in android studio

  9. ****** 二十八 ******、软设笔记【数据库】-分布式数据库、特点、数据存储、DBMS组成

    分布式数据库    一.分布式数据库        分布式数据库由一组数据组成,这些数据物理上分布在计算机网络的不同结点(场地)上,逻辑上是属于同一个系统.每个结点可以执行局部应用,也能通过网络通信子 ...

  10. webpack提示安装webpack-cli

    webpack 安装后提示CLI webpack 4X 后需要安装webpack-cli 请注意需要安装在同一目录 方法: 第一步:npm install -g webpack-cli 第二部: 同步 ...