2015-12-15 86 views
0

如何在iOS中執行網頁抓取技術。 任何參考/示例程序都會有所幫助。 在此先感謝。在iOS中抓取網頁

網絡抓取

web爬行器(也被稱爲網絡蜘蛛或web機器人)是一個程序或自動腳本,瀏覽萬維網在有條不紊,自動化的方式。這個過程被稱爲Web爬行或蜘蛛抓取。許多合法網站,特別是搜索引擎,都使用蜘蛛作爲提供最新數據的手段。

回答

2

一般來說,iOS不適合Web爬網,因爲它對於程序員來說不太容易靈活。

但是,如果你想,這是可能的。基本上你會使用AFNetworking(或Alamofire,或系統默認方法)發送Web請求。一旦你得到了答案,分析文本,主要是使用正則表達式。例如,您可以爲NSString編寫一個類別:

@implementation NSString(StringRegular) 

-(NSMutableArray *)substringByRegular:(NSString *)regular{ 

    NSString *reg=regular; 
    NSRange r = [self rangeOfString:reg options:NSRegularExpressionSearch]; 
    NSMutableArray *arr=[NSMutableArray array]; 

    if (r.length != NSNotFound &&r.length != 0) { 

     int i=0; 

     while (r.length != NSNotFound &&r.length != 0) { 

      NSString* substr = [self substringWithRange:r]; 
      [arr addObject:substr]; 
      NSRange startr=NSMakeRange(r.location+r.length, [self length]-r.location-r.length); 
      r=[self rangeOfString:reg options:NSRegularExpressionSearch range:startr]; 
     } 
    } 
    return arr; 
} 
@end 

然後,您將需要存儲您的數據。我建議你使用在線數據庫。如果沒有,你可以使用FMDatabase將數據存儲到你的iOS設備或者只是SQLite

+0

什麼是*「系統默認方法」*? – Jamil

+0

系統默認方法= NSURLSession&NSURLRequest –

0

我已經使用DIFFBOT在iOS中進行網頁爬行。該網站提供API用於不同的目的,如產品,分析頁面或文章。它配備了14天的免費試用版。下面是一個產品網頁抓取代碼:

let url = "https://api.diffbot.com/v3/product?token=YOURTOKEN&url=TheUrlWhichYouwantToSearchinURLENCODEDFORMAT" 
let requestUrl = RequestHandlerToken(url: url, withPostMethod: false) 
requestUrl.startRequest { (response, error) in 
    print(response) 
    self.parseData(resp: response) 
} 

的答覆將在JSON格式的到來。確保URL的格式爲URLencoded。在這裏我使用自定義類來觸發請求。您可以使用nsurl會話或連接來完成此操作。