如何在 iOS中实现Web Crawling技术。任何参考/示例程序都会有所帮助。提前致谢。
网络爬行
网络爬虫(也称为网络蜘蛛或网络机器人)是一种程序或自动化脚本,它以有条不紊、自动化的方式浏览万维网。此过程称为 Web 爬网或爬虫。许多合法网站,特别是搜索引擎,使用蜘蛛作为提供最新数据的一种手段。
如何在 iOS中实现Web Crawling技术。任何参考/示例程序都会有所帮助。提前致谢。
网络爬行
网络爬虫(也称为网络蜘蛛或网络机器人)是一种程序或自动化脚本,它以有条不紊、自动化的方式浏览万维网。此过程称为 Web 爬网或爬虫。许多合法网站,特别是搜索引擎,使用蜘蛛作为提供最新数据的一种手段。
一般来说,iOS 不适合 Web Crawling,因为它对程序员来说不容易灵活。
但如果你愿意,这是可能的。基本上,您将使用 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 或简单的 SQLite 将数据存储到您的 iOS 设备
我在 iOS 中使用DIFFBOT进行网络爬取。该网站为不同目的提供 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
格式。确保 URLURLencoded
格式正确。在这里,我使用自定义类来满足请求。您可以使用nsurl
会话或连接来执行此操作。