MCK*_*pur 0 html objective-c hpple ios
我想要做的是解析网站上页面的多个部分.这是我在做的事情:
NSURL *tutorialsUrl = [NSURL URLWithString:@"http://www.cetsp.com.br/"];
NSData *tutorialsHtmlData = [NSData dataWithContentsOfURL:tutorialsUrl];
TFHpple *tutorialsParser = [TFHpple hppleWithHTMLData:tutorialsHtmlData];
NSArray *holder;
NSString *tutorialsXpathQueryString = @"//div[@class='info oeste']/a/h4";
NSString *tutorialsXpathQueryString2 = @"//div[@class='info norte']/a/h4";
NSString *tutorialsXpathQueryString3 = @"//div[@class='info centro']/a/h4";
NSString *tutorialsXpathQueryString4 = @"//div[@class='info leste']/a/h4";
NSString *tutorialsXpathQueryString5 = @"//div[@class='info sul']/a/h4";
NSArray *oeste = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString];
NSArray *norte = [tutorialsParser searchWithXPathQuery: tutorialsXpathQueryString2];
NSArray *centro = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString3];
NSArray *leste = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString4];
NSArray *sul = [tutorialsParser searchWithXPathQuery: tutorialsXpathQueryString5];
holder = [[NSArray alloc] initWithObjects:norte, oeste, centro,leste,sul, nil];
for (NSArray *array in holder) {
for (TFHppleElement *element in array) {
NSLog([[element firstChild] content]);
}
}
Run Code Online (Sandbox Code Playgroud)
控制台会记录5种不同的正确结果,但正如您所看到的,我的代码非常繁琐.那么我怎样才能获得多个标签的所有内容?
谢谢!
Hpple使用XPathQuery来解析HTML.如果您想搜索任何可以使用的课程:
@"//div[@class=*]/a/h4"
Run Code Online (Sandbox Code Playgroud)
或者如果您只想要那些特定的课程,您可以尝试:
@"//div[@class='info oeste']/a/h4 | //div[@class='info norte']/a/h4 | //div[@class='info centro']/a/h4"
Run Code Online (Sandbox Code Playgroud)