用Objective-C HTMLParser解析HTML文档

代码:https://github.com/zootreeves/Objective-C-HMTL-Parser

?

戴维营教育代码

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30


NSString *str = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://vip.astro.sina.com.cn/astro/view/aries/day/20140808"] encoding:NSUTF8StringEncoding error:nil];

    

    NSError *error;

    

    //预先步骤

    //1. 在工程中添加libxml2的库(Build Phase -> Link binary with libraries -> +)

    //2. 在Header Search Path中添加/usr/include/libxml2

    

    //解析HTML文档

    HTMLParser *parser = [[HTMLParser alloc] initWithString:str error:&error];

    if (error) {

        NSLog(@"%@", error);

        return;

    }

    

    //获取HTML的body部分

    HTMLNode *node = [parser body];

    //根据HTML节点的属性查找节点

    NSArray *tabs = [node findChildrenWithAttribute:@"class" matchingName:@"tab" allowPartial:YES];

    for (HTMLNode *n in tabs) {

        //根据节点名称查找子节点

        HTMLNode *h4 = [n findChildTag:@"h4"];

        HTMLNode *img = [n findChildTag:@"img"];

        HTMLNode *p = [n findChildTag:@"p"];

        

        //获取的属性值

        NSLog(@"%@", [img getAttributeNamed:@"src"]);

        //获取节点内容

        NSLog(@"%@: %@", [h4 contents], [p contents]);

    }

时间: 2024-10-20 10:10:52

用Objective-C HTMLParser解析HTML文档的相关文章

使用 Python 模块—— HTMLParser 解析 HTML 文档元素

这个文档定义了一个 HTMLParser 类作为解析 HTML 文档的基础.HTMLParser 类的实例可以存储并调用方法来处理 HTML 标签和数据.我们一般通过建立一个 HTMLParser 的子类然后覆盖它的方法来实现我们想要的操作.HTMLParser 有很多方法,一般我们只需要覆盖下面几个方法: HTMLParser.handle_starttag(tag, attrs) #遇到一个开始标签时就会执行这个方法 #tag 是遇到的标签,attrs attrs是 (属性,值)元组(tup

[转载]python模块学习---HTMLParser(解析HTML文档元素)

转自:http://blog.csdn.net/hxsstar/article/details/17241709 HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析. 本文主要简单讲一下HTMLParser的用法. 使用时需要定义一个从类HTMLParser继承的类,重定义函数:handle_starttag( tag, attrs)handle_startendtag( tag, attrs)handle_endtag( tag) 来实现自己需要的功能.

Apache-Tika解析HTML文档

通常在使用爬虫时,爬取到网上的文章都是各式各样的格式处理起来比较麻烦,这里我们使用Apache-Tika来处理HTML格式的文章,如下: package com.mengyao.tika.app; import java.io.File; import java.io.FileInputStream; import org.apache.tika.metadata.Metadata; import org.apache.tika.parser.ParseContext; import org.a

python 解析html文档模块HTMLPaeser

python中,有三个库可以解析html文本,HTMLParser,sgmllib,htmllib.他们的实现方法不通,但功能差不多.这三个库中 提供解析html的类都是基类,本身并不做具体的工作.他们在发现的元件后(如标签.注释.声名等),会调用相应的函数,这些函数必须重载,因为基类中不作处理. 用Python中自带的HTMLPaeser模块,解析下面的HTMl文件 要求:1.获取到每一个漏洞的名称,CVE号,风险值 2.显示每一个漏洞单独显示,不要堆叠在一起 3.只获取高风险的漏洞 <htm

四种生成和解析XML文档的方法详解

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 一.介绍及优缺点分析 1. DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的. [优点]      ①允许应用

浅谈用java解析xml文档(四)

继续接上一文,这一阵子因为公司项目加紧,导致最后一个解析xml文档的方式,还没有总结,下面总结使用dom4J解析xml. DOM4J(Document Object Model for Java) 使用dom4j解析,个人认为是四种解析方式里面最方便的一种,DOM4J是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用D

浅谈用java解析xml文档(三)

接上一篇,本文介绍使用JDOM解析xml文档, 首先我们还是应该知道JDOM从何而来,是Breet Mclaughlin和Jason Hunter两大Java高手的创作成果,2000年初, JDOM作为一个开放源代码项目正式开始研发.JDOM是一种解析XML的Java工具包. JDOM基于树状结构,利用纯JAVA技术对XML文档实现解析.生成.序列化及其它操作. 我们从以下步骤开始解析: (1).通过JDOM的API创建一个SAXBuilder的对象 SAXBuilder saxBuilder

Java 解析XML文档

一.解析XML文档方式: 1.DOM方式:将整个XML文档读取到内存中,按照XML文件的树状结构图进行解析. 2.SAX方式:基于事件的解析,只需要加载XML中的部分数据,优点是,占用资源更少,内存消耗小. XML文档: <?xml version="1.0" encoding="UTF-8"?> <students> <student> <name>张三</name> <age>20</

原生javascript解析xml文档

之前写过一篇 <javascript/jQuery解析或转换json和xml>链接是http://my.oschina.net/ososchina/blog/343748,这篇博客详细解释了json使用 JSON.js  window.eval() ,jQuery 与字符串互相转换的方法 ,顺便也说了一点jQuery解析xml文档的方法,这里着重论述javascript操作xml. 顺便提一下,今天做项目有一点问题,如何让服务程序接口返回的就是json,而不需要 使用 jQuery.ajax设