利用charles抓取《美食杰》的業(yè)務(wù)數(shù)據(jù)

一德挣、工具

(1) charles (抓包工具)

屏幕快照 2016-04-08 上午11.08.43.png

charles for mac 下載
(2) 美食杰 (數(shù)據(jù)來源)

IMG_1736.jpg

AppStore搜索 美食杰

二、教程

1.打開charles

屏幕快照 2016-04-08 上午11.18.49.png

2.查看本機ip

屏幕快照 2016-04-08 上午11.19.12.png

3.在蘋果設(shè)備上設(shè)置代理

IMG_1737.jpg

4.操作美食杰app查看charles抓取到數(shù)據(jù)

響應(yīng)數(shù)據(jù)
請求參數(shù)

注意:電腦的網(wǎng)絡(luò)和移動設(shè)備的網(wǎng)路必須在同一網(wǎng)段里格嗅,設(shè)置完代理祸泪,charles會彈出是否允許訪問的對話框吗浩,點擊allow就可以了。

三没隘、效果

1.寫了個簡單的http請求
封裝的請求方法:
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; if ([aMethod isEqualToString:GET_METHOD]) { NSMutableString *urlString = [[NSMutableString alloc] initWithString:aURLString]; NSArray *paramArray = params.allKeys; for (NSString *tempString in paramArray) { int index = (int)[paramArray indexOfObject:tempString]; [urlString appendFormat:@"&%@=%@",tempString,params[tempString]]; } request.URL = [NSURL URLWithString:urlString]; }else if ([aMethod isEqualToString:POST_METHOD]){ //請求參數(shù) NSString *paramsJsonString = [self DataTOjsonString:params]; request.HTTPBody = [paramsJsonString dataUsingEncoding:NSUTF8StringEncoding]; request.URL = [NSURL URLWithString:aURLString]; } //請求方法 request.HTTPMethod = aMethod; [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; aSuccess([self dictionaryWithJsonString:responseString]); }];

發(fā)送請求:
NSArray *sortAray = @[@"step",@"default",@"time"]; NSArray*tArray=@[@"zao",@"zhong",@"xiawucha",@"wan",@"yexiao"]; for (int a = 0; a<1000; a++) { NSMutableDictionary *params = [NSMutableDictionary dictionary]; [params setValue:@"" forKey:@"lat"]; [params setValue:@"" forKey:@"lon"]; [params setValue:@"iphone" forKey:@"source"]; [params setValue:sortAray[random()%sortAray.count] forKey:@"sort"]; [params setValue:tArray[random()%tArray.count] forKey:@"t"]; [params setValue:@"" forKey:@"kw"]; [params setValue:@"desc" forKey:@"sort_sc"]; [params setValue:@"" forKey:@"gy"]; [params setValue:@"" forKey:@"step"]; [params setValue:@"" forKey:@"mt"]; [params setValue:[NSString stringWithFormat:@"%d",a] forKey:@"page"]; [_msjNetwork api_get_candanWithUrl:@"http://api.meishi.cc/v5/class_list1.php?format=json" params:params successBlock:^(NSDictionary *responeDictionary) { } failBlock:^(NSError *error) { }]; }
響應(yīng):把得到的數(shù)據(jù)扎入本地數(shù)據(jù)庫
[self requestNetworkWithURLString:aUrl params:aParam requestMethod:GET_METHOD successBlock:^(NSDictionary *responeDictionary) { NSDictionary *temp1 = responeDictionary[@"obj"]; NSArray *temp2 = temp1[@"data"]; for (NSDictionary *temp3 in temp2) { NSString *msjID = temp3[@"id"]; MsjModel *temp = [MsjModel FindByID:msjID]; if (!temp) { temp = [[MsjModel alloc] init]; }else { continue; } temp.msjID = msjID; temp.gongyi = temp3[@"gongyi"]; temp.kouwei = temp3[@"kouwei"]; temp.mt = temp3[@"mt"]; temp.smalltext = temp3[@"smalltext"]; temp.titlepic = temp3[@"titlepic"]; temp.title = temp3[@"title"]; temp.md = temp3[@"md"]; [temp saveOrUpdateDB]; } asuccessBlock(responeDictionary); } failBlock:^(NSError *error) { }];

獲取到的數(shù)據(jù)


菜單數(shù)據(jù)

HTTP抓包
打開Charles程序
查看Mac電腦的IP地址,如192.168.1.7
打開iOS設(shè)置,進入當前wifi連接阀湿,設(shè)置HTTP代理Group赶熟,將服務(wù)器填為上一步中獲得的IP,即192.168.1.7陷嘴,端口填8888
iOS設(shè)備打開你要抓包的app進行網(wǎng)絡(luò)操作
Charles彈出確認框映砖,點擊Allow按鈕即可

HTTPS抓包
下載Charles證書http://www.charlesproxy.com/ssl.zip灾挨,解壓后導入到iOS設(shè)備中(將crt文件作為郵件附件發(fā)給自己邑退,再在iOS設(shè)備中點擊附件即可安裝;也可上傳至dropbox之類的網(wǎng)盤地技,通過safari下載安裝)
在Charles的工具欄上點擊設(shè)置按鈕秒拔,選擇Proxy Settings…
切換到SSL選項卡,選中Enable SSL Proxying作谚,別急妹懒,選完先別關(guān)掉,還有下一步
這 一步跟Fiddler不同喳挑,F(xiàn)iddler安裝證書后就可以抓HTTPS網(wǎng)址的包了彬伦,Charles則麻煩一些单绑,需要在上一步的SSL選項卡的 Locations表單填寫要抓包的域名和端口曹宴,點擊Add按鈕搂橙,在彈出的表單中Host填寫域名,比如填api.instagram.com笛坦,Port 填443
接下來就跟HTTP抓包一樣了

抓取微信的亂碼:

屏幕快照 2016-04-08 下午12.18.18.png

參考代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末区转,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子废离,更是在濱河造成了極大的恐慌,老刑警劉巖礁芦,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜻韭,死亡現(xiàn)場離奇詭異悼尾,居然都是意外死亡,警方通過查閱死者的電腦和手機肖方,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門闺魏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人俯画,你說我怎么就攤上這事析桥。” “怎么了艰垂?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵泡仗,是天一觀的道長。 經(jīng)常有香客問我材泄,道長沮焕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任拉宗,我火速辦了婚禮,結(jié)果婚禮上辣辫,老公的妹妹穿的比我還像新娘旦事。我一直安慰自己,他們只是感情好急灭,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布姐浮。 她就那樣靜靜地躺著,像睡著了一般葬馋。 火紅的嫁衣襯著肌膚如雪卖鲤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天畴嘶,我揣著相機與錄音蛋逾,去河邊找鬼。 笑死窗悯,一個胖子當著我的面吹牛区匣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蒋院,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼亏钩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了欺旧?” 一聲冷哼從身側(cè)響起姑丑,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辞友,沒想到半個月后栅哀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年昌屉,在試婚紗的時候發(fā)現(xiàn)自己被綠了钙蒙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡间驮,死狀恐怖躬厌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情竞帽,我是刑警寧澤扛施,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站屹篓,受9級特大地震影響疙渣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜堆巧,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一妄荔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谍肤,春花似錦啦租、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至系任,卻和暖如春恳蹲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俩滥。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工嘉蕾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人举农。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓荆针,卻偏偏與公主長得像,于是被迫代替她去往敵國和親颁糟。 傳聞我的和親對象是個殘疾皇子航背,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容