在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
答
我已经使用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
会话或连接来完成此操作。
什么是*“系统默认方法”*? – Jamil
系统默认方法= NSURLSession&NSURLRequest –