HTML解析
首先,新建一个工程,到Build Phases-link Binary With Libraries,点+添加libxml2运行库
再到build settings中搜索Header search Paths,双击该选项第一行添加/usr/include/libxml2 此步骤为添加头文件
把HTML解析开源代码加入工程
在我们解析HTML的那个类中添加开源代码头文件
开始解析
NSString *str = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://dict.youdao.com/search?le=eng&q=success&keyfrom=dict.top"] encoding:NSUTF8StringEncoding error:nil];//把这个网址的内容以UTF-8编码保存在字符串中 NSError *error; if (error)//一旦出错,程序自动返回 { return; } HTMLParser *parser = [[HTMLParser alloc]initWithString:str error:&error];//定义一个解析HTML工具的对象,来使用开源代码 HTMLNode *node = [parser body];//确定程序最大的那个body节点,选出这个节点,再在body节点中找我们要的数据 NSArray *keyword = [node findChildrenWithAttribute:@"class" matchingName:@"keyword" allowPartial:YES]; //定位单词的位置在node节点中keybode下面, for (HTMLNode *a in keyword) { NSLog(@"%@",[a contents]);//把keyboard内容依次打印输出 } NSArray *fanyi = [node findChildrenWithAttribute:@"class" matchingName:@"trans-container" allowPartial:YES]; HTMLNode *ul = [fanyi[0] findChildTag:@"ul"]; HTMLNode *li = [ul findChildTag:@"li"]; NSLog(@"%@",[li contents]); HTMLNode *ol = [node findChildWithAttribute:@"class" matchingName:@"ol wordGroup" allowPartial:YES]; NSArray *word = [ol findChildrenOfClass:@"wordGroup"]; NSLog(@"%@",word); for (HTMLNode *b in word) { HTMLNode *span = [b findChildTag:@"span"]; NSLog(@"%@",[span contents]);
}
在火狐浏览器中打开需要解析的网页,查看当前网页元素,节点一目了然
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。