0

如何在 iOS中实现Web Crawling技术。任何参考/示例程序都会有所帮助。提前致谢。

网络爬行

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

4

2 回答 2

2

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

于 2015-12-15T06:18:26.723 回答
0

我在 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会话或连接来执行此操作。

于 2017-08-14T11:53:03.100 回答