美文网首页iOS、swift技术交流!iOS开发
青花瓷 和 HTTPScoop(手机抓取数据)

青花瓷 和 HTTPScoop(手机抓取数据)

作者: 光明程辉 | 来源:发表于2015-11-24 23:59 被阅读2092次

Charles.png

<1> 使用“青花瓷”

  1. 手机和拦截的电脑要在同一个局域网中;
  2. 将手机上网的代理朊务器设置为电脑的IP,端口8888
  3. 看上部列表左侧可以知道请求方法类型,GET & POST
  4. 在下面点Response可以看到朊务器的响应结果,通常图片都是异步加载,一个Response对应一个图像
  5. 点下面的Requset可以看到发送给朊务器的请求

日常跟踪时,可以根据Response判断哪些请求是我们需要的,然后夊制对应的URL即可。

青花瓷只是跟踪数据,是一个抓包工具,上能依赖青花瓷去开发完整的应用程序,在日常工作中,这些JSON都是由公司后端程序员提供的。

<2>使用 HTTPScoop

使用httpScoop.png
  1. 保证 iphone/android 和电脑在同一个网段2. 在 iphone Setting 设置电脑的 ip 地址 这里端口是随意写的 不过要保证>1024
在同一局域网.png
  1. 启动 paros(首先你要把它下载下来,这个是个文件,使用它很简单,只需点击paros文件里面的可执行文件 run ,过几秒就会弹出下面界面了)我把paros放在了:https://github.com/ChengHuiHe/paros
启动软件.png
  1. 点击代理 ,输入和 iphone 对应的 ip 和端口
手机和电脑IP一致哦!.png
  1. 然后运行 iphone 上程序就可以看到数据包了
第一行的GET就是数据了.png

数据分析:GET 协议分析
把GET 请求的数据复制下来:
http://wbapp.mobile.sina.cn/interface/ninesquares/getsearchicon.php?udid=e4:ce:8f:7c:9c:41&uid=&wm=b207&posid=pos4f9ba29064868&from=6030093012

  • 这就是网址,可以直接放在浏览器中显示 也可以使用 ASI 直接获取
    POST 协议分析
    对于 POST 比较复杂一些。里面的参数需要你使用程序参数才能使用,比如http://api.maopao.com:80/maopao/v2.0/postlocationdeviceid=1dfe9be1f679d04ebcec86cf74d41813bcbc0daf&geolat=40.0340&geolong=116.3441
    类似代码如下:
    - (void) foo {
    NSURL *url = [NSURLURLWithString:@"http://api.maopao.com:80/maopao/v2.0/postlocation"];
    ASIFormDataRequest r = [ASIFormDataRequestrequestWithURL:url];
    //deviceid=1dfe9be1f679d04ebcec86cf74d41813bcbc0daf&geolat=40.0340&geolong=116.3441 [rsetPostValue:@"1dfe9be1f679d04ebcec86cf74d41813bcbc0daf"forKey:@"deviceid"];
    [rsetPostValue:@"40.0340" forKey:@"geolat"]; [r setPostValue:@"116.3441" forKey:@"geolong"]; [r setDelegate:self]; [r startAsynchronous];
    }
    对于图片上传使用
    - (void)setData:(id)data withFileName:(NSString
    )fileName andContentType:(NSString *)contentTypeforKey:(NSString *)key
    注意如果有请求头的办法:诸如下面这些就是请求头:
    POST http://api.maopao.com:80/maopao/v2.0/postlocation HTTP/1.1Host:
    api.maopao.com:80UserAgent:iPhone:6.0.1/maopaopaipai:1.3.6/source:mppp_I_app/deviceinfo:iPhone3,1Proxy-
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencodedContent-Length: 81Accept-Language: zh-cnAccept: /
    Connection: keep-aliveUser-Agent: mppp/1.3.6 CFNetwork/609 Darwin/13.0.0 Paros/3.2.13
    给 ASI 设置请求头
  • 代码如下:
    r.requestHeaders = [NSMutableDictionarydictionaryWithObjectsAndKeys:
    @"api.maopao.com:80",
    @"Host",@"iPhone:6.0.1/maopaopaipai:1.3.6/source:mppp_I_app/deviceinfo:iPhone3,1",
    @"UserAgent",
    @"mppp/1.3.6 CFNetwork/609 Darwin/13.0.0Paros/3.2.13", @"User-Agent",
    nil];

相关文章

网友评论

  • 光明程辉:这个通过手机抓取响应的数据!然后解析,就可以,开发了! :smiley:

本文标题:青花瓷 和 HTTPScoop(手机抓取数据)

本文链接:https://www.haomeiwen.com/subject/pknrhttx.html