在iOS中抓取网页

问题描述:

如何在iOS中执行网页抓取技术。 任何参考/示例程序都会有所帮助。 在此先感谢。在iOS中抓取网页

网络抓取

web爬行器(也被称为网络蜘蛛或web机器人)是一个程序或自动脚本,浏览万维网在有条不紊,自动化的方式。这个过程被称为Web爬行或蜘蛛抓取。许多合法网站,特别是搜索引擎,都使用蜘蛛作为提供最新数据的手段。

一般来说,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 –

我已经使用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会话或连接来完成此操作。