IOS開發(fā)分享----爬蟲技術

這段時間趁閑魚時間,看到一段關于JAVA爬蟲某知名網(wǎng)站的代碼囚巴;試了試ios利用webview 及 AFNETWORKING網(wǎng)絡請求 ;仿java思路 完成了一個成功的dome柄瑰;

閑話不多說:

? ? 大致流程:

? ? ? ? ?1务嫡、利用火狐、Google chrome瀏覽器 查看控制臺 ?抓取 其網(wǎng)絡請求(get钥星、post)獲取其請求頭沾瓦、請求體;

? ? ? ? ?2谦炒、利用webview獲取cookies (https請求需要自己配置info.list)

? ? ? ? ?3贯莺、參考其請求模式,模擬請求 獲取HTML響應體宁改;

? ? ? ? ?4缕探、解析請求體、展示給用戶还蹲; ? ? //獲取有效信息?

? ? ? ? ?5爹耗、 保存數(shù)據(jù)提交自己的服務器;


1谜喊、利用火狐潭兽、Google chrome瀏覽器 查看控制臺? 抓取 其網(wǎng)絡請求(get、post)獲取其請求頭斗遏、請求體山卦;


注:以百度為例


2、利用webview獲取cookies


注:web設為(0诵次,0账蓉,0枚碗,0)給自己的UI留位置


3、參考其請求模式铸本,模擬請求 獲取HTML響應體

這個是關鍵券膀,需要模擬請求

注:這個是HTTPS get請求?

遇到post的其實可以用ios原生post請求 獲取 根據(jù)瀏覽器獲取的請求方式進行:

NSURLSession*session = [NSURLSession sharedSession];

// 設置請求路徑

NSURL*URL=[NSURL URLWithString:@"https://www.baidu.com"];//不需要傳遞參數(shù)

// 創(chuàng)建請求對象

NSMutableURLRequest*request=[NSMutableURLRequest requestWithURL:URL];//默認為get請求

request.timeoutInterval=5.0;//設置請求超時為5秒

request.HTTPMethod=@"POST";//設置請求方法

// 設置請求體

NSString*param=[NSString stringWithFormat:@"reportformat=21&tradeCode=%@",uesr_name];

//把拼接后的字符串轉換為data淮摔,設置請求體

[requestsetValue:@"max-age=0"forHTTPHeaderField:@"Cache-Control"];

[requestsetValue:cookies forHTTPHeaderField:@"Cookie"];

[requestsetValue:@"https://www.baidu.com"forHTTPHeaderField:@"Origin"];

request.HTTPBody=[paramdataUsingEncoding:NSUTF8StringEncoding];

// 發(fā)送請求

NSURLSessionDataTask*dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData*_Nullabledata,NSURLResponse*_Nullableresponse,NSError*_Nullableerror) {

// 解析數(shù)據(jù)data流過來的html編碼轉換成NSString

NSStringEncodingenc =CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);//可以在流量器上獲取解碼的類型

NSString* str =[[NSStringalloc]initWithData:dataencoding:enc];

// 反饋給服務器

NSLog(@"=====>>>>>%@",str);

//[data writeToFile:@"/Users/lufeng1/Desktop/c.html" atomically:YES];//可以測試看看獲取的數(shù)據(jù)正確與否

}];

// 執(zhí)行任務

[dataTask resume];


4屋摔、解析請求體硕勿、展示給用戶

解析這里的responseObject即可 給的例子是用GB翻譯的 可以用保存的方式 存儲為HTML查看?

給個福利吧鄙早,查看HTML有些時候獲取不全body 可以試試這句話-----

//NSString * str= [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"];

5汪茧、 保存數(shù)據(jù)提交自己的服務器

自己post回去有用信息即可


文章寫的比較粗糙吧,過程之中可能會遇到HTTPS請求報錯 那就需要配置相對應的HTTPS.cer文件放入工程:

~openssl s_client -connect www.baidu.com:443 /dev/null | openssl x509 -outform DER > https.cer

可把www.baidu.com替換直接獲取證書限番。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末舱污,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子弥虐,更是在濱河造成了極大的恐慌扩灯,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霜瘪,死亡現(xiàn)場離奇詭異珠插,居然都是意外死亡,警方通過查閱死者的電腦和手機颖对,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門捻撑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缤底,你說我怎么就攤上這事顾患。” “怎么了个唧?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵江解,是天一觀的道長。 經常有香客問我徙歼,道長犁河,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任魄梯,我火速辦了婚禮呼股,結果婚禮上,老公的妹妹穿的比我還像新娘画恰。我一直安慰自己彭谁,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布允扇。 她就那樣靜靜地躺著缠局,像睡著了一般则奥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上狭园,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天读处,我揣著相機與錄音,去河邊找鬼唱矛。 笑死罚舱,一個胖子當著我的面吹牛,可吹牛的內容都是我干的绎谦。 我是一名探鬼主播管闷,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼窃肠!你這毒婦竟也來了包个?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤冤留,失蹤者是張志新(化名)和其女友劉穎碧囊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纤怒,經...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡糯而,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了泊窘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歧蒋。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖州既,靈堂內的尸體忽然破棺而出谜洽,到底是詐尸還是另有隱情,我是刑警寧澤吴叶,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布阐虚,位于F島的核電站,受9級特大地震影響蚌卤,放射性物質發(fā)生泄漏实束。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一逊彭、第九天 我趴在偏房一處隱蔽的房頂上張望咸灿。 院中可真熱鬧,春花似錦侮叮、人聲如沸避矢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽审胸。三九已至亥宿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砂沛,已是汗流浹背烫扼。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留碍庵,地道東北人映企。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像静浴,于是被迫代替她去往敵國和親堰氓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容

  • iOS開發(fā)系列--網(wǎng)絡開發(fā) 概覽 大部分應用程序都或多或少會牽扯到網(wǎng)絡開發(fā)马绝,例如說新浪微博豆赏、微信等挣菲,這些應用本身可...
    lichengjin閱讀 3,661評論 2 7
  • 前言 關于UIWebView的介紹富稻,相信看過上文的小伙伴們,已經大概清楚了吧白胀,如果有問題椭赋,歡迎提問。 本文是本系列...
    CoderLF閱讀 8,967評論 2 12
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理或杠,服務發(fā)現(xiàn)哪怔,斷路器,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666閱讀 1,383評論 0 6
  • iOS App開發(fā)中的Cookie 一向抢、何為Cookie Cookie是網(wǎng)站為了便是終端身份认境,保存在終端本地的用戶...
    o本是后山人o偶作前堂客o閱讀 3,697評論 1 8