jsoup简单封装

1.jsoup简介

jsoup 是一款Java 的HTML解析器。

2.特点

它提供了一套非常省力的API,可通过类似于jQuery的操作方法来取出和操作数据。

区别:

1):eq(n)

jsoup:元素在父元素中的index

selector:元素在结果集中的index

3.封装的目的

把数据提取和业务逻辑分离开来,使代码更清晰,易懂,便于维护

4.组件图


Extractor:对jsoup的简单封装,依赖与jsoup和Apache Commons库

Spring:实现了与Spring的集成

Digester+XSD:实现了核心类HTMLExtractor的XML配置

5.类图

HTMLExtractor:核心类,解析HTML页面的入口

BeanExtractor:将HTML元素解析为一简单的JAVABEAN,暂不支持有参构造方法

ListExtractor:将HTML元素解析为一List对象

PropertyExtractor:将HTML元素解析为一JAVA基本类型对象或者Date对象

 6.简单的处理流程


PageProcessor:用于处理某一类型的页面,可能会调用其它的PageProcessor

HTMLExtractor:用于解析该类型页面,提取出相关数据

Convertor:将HTMLExtractor提取出来的数据转化了内部可用的JAVABean,其中可能会调用Service

Service:对JAVABean进行处理的业务逻辑

7.问题

开始以为封装的HTMLExtractor能够实现从页面到JAVABean的直接转化,在实践中发现目标JAVABean的属性在HTML页面中经常和其它的属性或者其它提示性文字混合在一起呈现,无法直接转化,并且某些属性可能会依赖于Service在已有数据中进行获取。

8.结论

对jsoup的简单封装实现虽然使代码更清晰,易懂,但是由于属性进行了两次set,第一次在HTMLExtractor中,第二次在Convertor中,降低了抓取效率,但是个人觉得是值得的。

9.源代码

附件中的jsoup.rar

猜你喜欢

转载自siyuan-zhu.iteye.com/blog/2136309