使用jsoup解析HTML之jsoup和HTML DOM简介
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用jsoup解析HTML之jsoup和HTML DOM简介,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2147字,纯文字阅读大概需要4分钟。
内容图文
jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。类似的解析器还有HTMLParser,使用的也比较广泛,但是HTMLParser缺少维护,发布的最后一个版本还停留在2006年(http://sourceforge.net/projects/htmlparser/files/)。
在使用jsoup解析html之前,有必要对html的dom结构进行一个了解。因为在jsoup中定义了例如Node、Element、Document等这样的类,你必须清楚这些类所代表的含义。下面是jsoup中org.jsoup.nodes这个包的类层次图:
Node是最基本的,抽象的结点模型。Elements, Documents, Comments等都是 Node 的实例(或子类).根据 DOM,HTML 文档中的每个成分都是一个节点。
DOM 是这样规定的:
- 整个文档是一个文档节点
- 每个 HTML 标签是一个元素节点
- 包含在 HTML 元素中的文本是文本节点
- 每一个 HTML 属性是一个属性节点
- 注释属于注释节点
节点彼此都有等级关系。
HTML 文档中的所有节点组成了一个文档树(或节点树)。HTML 文档中的每个元素、属性、文本等都代表着树中的一个节点。树起始于文档节点,并由此继续伸出枝条,直到处于这棵树最低级别的所有文本节点为止。
<html> <head> <title> DOM Tutorial </title> </head> <body> <h1> DOM Lesson one </h1> <p> Hello world! </p> </body> </html>
上面所有的节点彼此间都存在关系。
除文档节点之外的每个节点都有父节点。举例,<head> 和 <body> 的父节点是 <html> 节点,文本节点 “Hello world!” 的父节点是 <p> 节点。
大部分元素节点都有子节点。比方说,<head> 节点有一个子节点:<title> 节点。<title> 节点也有一个子节点:文本节点 “DOM Tutorial”。
当节点分享同一个父节点时,它们就是同辈(同级节点)。比方说,<h1> 和 <p>是同辈,因为它们的父节点均是 <body> 节点。
节点也可以拥有后代,后代指某个节点的所有子节点,或者这些子节点的子节点,以此类推。比方说,所有的文本节点都是 <html>节点的后代,而第一个文本节点是 <head> 节点的后代。
节点也可以拥有先辈。先辈是某个节点的父节点,或者父节点的父节点,以此类推。比方说,所有的文本节点都可把 <html> 节点作为先辈节点。
一个HTML元素(Element)包含一个标记名称,属性和子节点(包括文本节点和其他元素)。从一个元素(Element)中,你可以提取数据,遍历节点图,以及操纵HTML。jsoup中的Element类提供了若干种方法来查找您希望操作的元素。
- getAllElements() 返回所有的元素,包括元素的子元素,以及子元素的子元素
- getElementById(String id) 根据元素的ID查找元素
- getElementsByAttribute(String key) 根据属性名查找元素
- getElementsByAttributeValue(String key, String value) 根据属性键值对查代元素
- getElementsByClass(String className) 根据css的class查找元素
- getElementsByTag(String tagName) 根据标签名称查找元素
<div id = "imgDiv" class = "imgClass" > <a href = "#" > <img src = "http://xxxx.xx/xx.jpg" /> </a> </div>
在上面的例子中,我们就可以使用getElementsByTag(“img”)获取到“<img src=”http://xxxx.xx/xx.jpg”/>”
同样的,可以使用getElementById(“imgDiv”)和getElementsByClass(“imgClass”)获取到整个dom文档。
原文:http://blog.csdn.net/yyt602037504/article/details/42612033
内容总结
以上是互联网集市为您收集整理的使用jsoup解析HTML之jsoup和HTML DOM简介全部内容,希望文章能够帮你解决使用jsoup解析HTML之jsoup和HTML DOM简介所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。