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]);
}

在火狐浏览器中打开需要解析的网页,查看当前网页元素,节点一目了然

HTML解析,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。