`
风过无声
  • 浏览: 92449 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

  • 大小: 22.5 KB
  • 大小: 7 KB
  • jsoup.rar (74.4 KB)
  • 描述: jsoup简单封装源代码
  • 下载次数: 28
  • 大小: 6 KB
分享到:
评论
1 楼 Ql211 2015-05-09  
非常赞,正是自己需要的,感谢分享。

相关推荐

    jsoup-1.11.2.rar

    **jsoup库详解** ...在“jsoup-1.11.2.jar”文件中,封装了所有这些功能,而“jsoup-1.11.2.txt”文件则可能提供了关于这个版本的详细信息。开发者可以结合这两个资源,轻松地将jsoup集成到自己的Java项目中。

    jsoup爬虫中文api

    Jsoup提供了一种简单有效的方法来清洗用户输入的内容,即使用基于白名单的清理器。 ```java String userHtml = "(\"XSS\");'>Hello</div>"; String safeHtml = Jsoup.clean(userHtml, Whitelist.basic()); ``` 在...

    jsoup-1.8.3

    java用于html解析的开源工具,jsoup封装了一些方法,非常简单,语法跟js有点像

    ksoup,jsoup的kotlin包装器.zip

    KSoup是一个基于Kotlin的库,它是对Java库JSoup的封装,提供了更加简洁、直观且符合Kotlin编程习惯的API。JSoup是一个非常流行的库,用于处理HTML文档,进行解析、提取数据以及修改HTML结构。KSoup的出现使得Kotlin...

    jsoup-1.7.2

    在版本1.7.2中,jsoup提供了高效且可靠的工具,使得开发者能够轻松地处理网页内容,无论是简单的元素查找还是复杂的DOM遍历,都能够得心应手。 **HTML解析** jsoup的核心功能在于解析HTML。它能够将HTML源码转换为...

    jsoup-1.6.2.jar

    `jsoup-1.6.2.jar`是这个库的一个特定版本,即1.6.2,封装在一个Java可执行的JAR(Java Archive)文件中。 1. **解析HTML** jsoup能够解析HTML文档,并将其转换为一个可操作的DOM(文档对象模型)结构。这使得...

    爬虫demo、List封装、extjs

    "extjs简单示例"指的是EXT JS,这是一个用于构建Web应用程序的JavaScript库,它提供了丰富的用户界面组件和强大的数据管理功能。EXT JS的示例可能展示了如何创建基本的布局、控件,或者如何与后端服务器进行数据交互...

    jsonp源码以及jar包

    JSONP(JSON with Padding)是一种跨域数据交互协议,它的基本思想是利用JavaScript函数调用的特性,将数据封装在函数调用中,从而绕过浏览器的同源策略限制。在网页开发中,如果你需要从一个不同的域名下获取数据,...

    WebMagic是一个简单灵活的Java爬虫框架

    例如,通过简单的几行代码,就能实现一个基本的爬虫,如下所示: ```java Spider.create(new MyPageProcessor()).addUrl("http://example.com").thread(5).start(); ``` 这里的`MyPageProcessor`是你自定义的...

    51job 简历解析工具

    Jsoup是一个用于处理实际世界HTML的Java库,它的设计目标是使处理HTML变得更加简单。Jsoup能够解析HTML,提取和修改数据,就像在浏览器中操作一样。在51job简历解析工具中,Jsoup主要用来解析简历文件中的文本、结构...

    jdbc操作基本操作包装 实现简单的OR映射 外加爬虫

    在实际应用中,为了减少重复代码和提高可维护性,通常会将这些步骤封装到一个工具类或DAO(Data Access Object)层中。包装后的JDBC操作可以更简洁、高效,例如创建批处理、事务管理等高级功能。 实现简单的OR映射...

    java 读取html过滤标签

    对于简单的HTML结构,还可以使用正则表达式来匹配和替换特定标签。但这种方法对复杂的HTML或嵌套标签处理可能不准确,因此推荐使用DOM或Jsoup。 4. **工具类**: 为了便于复用,可以创建一个工具类,封装读取和...

    Java常用开源库(附源码地址).docx

    - BeanUtils:提供对Java反射和自省API的封装,简化对象属性的访问。 - Chain:实现责任链模式,用于组织复杂的处理流程。 - CLI:处理命令行参数和选项,提供简单易用的API。 - Codec:包含各种编码解码算法,如Hex...

    java爬虫技术

    以下是一个简单的Jsoup爬虫示例: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class SimpleCrawler { public static void main(String[] args) throws Exception { String url =...

    java 爬虫类

    Jsoup是一个非常流行的库,它提供了CSS选择器和DOM操作,使得解析HTML变得简单易懂。HtmlUnit是一个无头浏览器,可以执行JavaScript,对于需要动态加载内容的网页更为适用。 3. **数据提取**:在获取HTML后,我们...

    简单浏览器 java

    10. **可扩展性和维护性**:优秀的代码设计应考虑到未来可能的功能扩展,使用面向对象的原则,如封装、继承和多态,可以提高代码的可维护性。 通过以上分析,我们对这个Java简单浏览器的实现有了初步的了解。实际上...

    android 封装抓取网页信息的实例代码

    这个实例代码展示了如何封装一个简单的功能,用于从指定的网页URL中抓取并下载图片。下面我们将详细分析这段代码及其涉及的关键知识点。 1. **URL类**:在Java中,`java.net.URL`类用于表示统一资源定位符,即我们...

    JAVA开发一个简单的爬虫的思路2.doc

    对于数据解析,可以使用Jsoup或Jackson库;对于并发处理,可以使用多线程或异步编程模型。 总的来说,Java开发简单网络爬虫涉及到HTTP协议的理解、HTTP客户端库的使用以及数据解析技术。通过HttpWatch等工具分析...

    html转图片的jar包.zip

    它提供了一种简单的方式来解析、操作和提取数据。虽然Jsoup本身并不直接支持HTML转图片,但可以通过结合其他库(如JavaFX或Batik),先使用Jsoup解析HTML,然后利用其他库进行转换。 4. **Headless Browser**:在...

Global site tag (gtag.js) - Google Analytics