桓楠百科网

编程知识、经典语录与百科知识分享平台

[Jsoup] HTML解析器,轻松获取网页内容

Jsoup简介

jsoup 是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。





官网地址:
http://jsoup.org/


在官网中下载 jsou-1.8.3.jar 文件,添加到自己项目的lib库中,便可使用Jsoup提供的api,官网中也提供了一套使用指南(Cookbook),便于开发者借鉴。
Jsoup解析HTML得到一个Document对象,通过操作Document的属性来获取HTML页面内容,所以,在开始之前,先介绍一下XML中Node、Element、Document等这些相关概念的区别,防止因概念混淆而导致乱用错用。

相关概念

  • Jsoup中的继承关系

    public abstract class Node implements Cloneable
    public class Element extends Node
    public class Document extends Element

    从Jsoup源码对三者的定义可以看出如下一个树形继承关系:

  1. Node(节点)
    从上述继承关系上可以明确一点,文档中的所有内容都可以看做是一个节点。节点有很多种类型:属性节点(Attribute)、注释节点(Note)、文本节点(Text)、元素节点(Element)等,通常所说的节点是这些多种节点的统称。

  2. Element(元素)
    相比节点而言,元素则是一个更小范围的定义。元素继承于节点,是节点的子集,所以一个元素也是一个节点,节点拥有的公有属性和方法在元素中也能使用。

  3. Document(文档)
    文档继承于元素,指整个HTML文档的源码内容,通过 System.out.println(document.toString()); 即可在控制台打印出网页源码内容。

  4. 相互转换
    基于Node、Element和Document之间的“缠绵”关系,可以利用各个类中提供的方法适当转换获取所需对象,以供使用。

    使用案例

    Jsoup解析Html获取Document对象的方式分为三类:在线Url、Html文本字符串、文件,对应API如下

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言