在Objective-C中从网站获取HTML数据 - 解析HTML

时间:2016-09-26 07:26:37

标签: ios objective-c xcode

我跟随this tutorial。它使用hpple从这个代码解析来自网站的html:

-(void)loadTutorials {
// 1
NSURL *tutorialsUrl = [NSURL URLWithString:@"http://www.raywenderlich.com/tutorials"];
NSData *tutorialsHtmlData = [NSData dataWithContentsOfURL:tutorialsUrl];

// 2
TFHpple *tutorialsParser = [TFHpple hppleWithHTMLData:tutorialsHtmlData];

// 3
NSString *tutorialsXpathQueryString = @"//div[@class='content-wrapper']/ul/li/a";
NSArray *tutorialsNodes = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString];

// 4
NSMutableArray *newTutorials = [[NSMutableArray alloc] initWithCapacity:0];
for (TFHppleElement *element in tutorialsNodes) {
    // 5
    Tutorial *tutorial = [[Tutorial alloc] init];
    [newTutorials addObject:tutorial];

    // 6
    tutorial.title = [[element firstChild] content];

    // 7
    tutorial.url = [element objectForKey:@"href"];
}

// 8
_objects = newTutorials;
[self.tableView reloadData];
}

然而,它似乎已经过时,因为它不再起作用。我注意到这些行NSURL *tutorialsUrl = [NSURL URLWithString:@"http://www.raywenderlich.com/tutorials"]; NSData *tutorialsHtmlData = [NSData dataWithContentsOfURL:tutorialsUrl];不再起作用了。 NSData始终等于(NULL)。我也尝试更改网址,这不是问题所在。有谁知道我怎么解决这个问题?非常感谢!

1 个答案:

答案 0 :(得分:0)

您不得在plist中设置AppTransport安全性。

设置如下

应用传输安全设置 - >允许任意负载 设为是

查看图片以获取想法

enter image description here

我已经检查过同一个教程的项目,在我将仲裁加载添加到是

后,它工作了

希望它有所帮助。

快乐的编码......