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
相关推荐
**jsoup库详解** ...在“jsoup-1.11.2.jar”文件中,封装了所有这些功能,而“jsoup-1.11.2.txt”文件则可能提供了关于这个版本的详细信息。开发者可以结合这两个资源,轻松地将jsoup集成到自己的Java项目中。
Jsoup提供了一种简单有效的方法来清洗用户输入的内容,即使用基于白名单的清理器。 ```java String userHtml = "(\"XSS\");'>Hello</div>"; String safeHtml = Jsoup.clean(userHtml, Whitelist.basic()); ``` 在...
java用于html解析的开源工具,jsoup封装了一些方法,非常简单,语法跟js有点像
KSoup是一个基于Kotlin的库,它是对Java库JSoup的封装,提供了更加简洁、直观且符合Kotlin编程习惯的API。JSoup是一个非常流行的库,用于处理HTML文档,进行解析、提取数据以及修改HTML结构。KSoup的出现使得Kotlin...
在版本1.7.2中,jsoup提供了高效且可靠的工具,使得开发者能够轻松地处理网页内容,无论是简单的元素查找还是复杂的DOM遍历,都能够得心应手。 **HTML解析** jsoup的核心功能在于解析HTML。它能够将HTML源码转换为...
`jsoup-1.6.2.jar`是这个库的一个特定版本,即1.6.2,封装在一个Java可执行的JAR(Java Archive)文件中。 1. **解析HTML** jsoup能够解析HTML文档,并将其转换为一个可操作的DOM(文档对象模型)结构。这使得...
"extjs简单示例"指的是EXT JS,这是一个用于构建Web应用程序的JavaScript库,它提供了丰富的用户界面组件和强大的数据管理功能。EXT JS的示例可能展示了如何创建基本的布局、控件,或者如何与后端服务器进行数据交互...
JSONP(JSON with Padding)是一种跨域数据交互协议,它的基本思想是利用JavaScript函数调用的特性,将数据封装在函数调用中,从而绕过浏览器的同源策略限制。在网页开发中,如果你需要从一个不同的域名下获取数据,...
例如,通过简单的几行代码,就能实现一个基本的爬虫,如下所示: ```java Spider.create(new MyPageProcessor()).addUrl("http://example.com").thread(5).start(); ``` 这里的`MyPageProcessor`是你自定义的...
Jsoup是一个用于处理实际世界HTML的Java库,它的设计目标是使处理HTML变得更加简单。Jsoup能够解析HTML,提取和修改数据,就像在浏览器中操作一样。在51job简历解析工具中,Jsoup主要用来解析简历文件中的文本、结构...
在实际应用中,为了减少重复代码和提高可维护性,通常会将这些步骤封装到一个工具类或DAO(Data Access Object)层中。包装后的JDBC操作可以更简洁、高效,例如创建批处理、事务管理等高级功能。 实现简单的OR映射...
对于简单的HTML结构,还可以使用正则表达式来匹配和替换特定标签。但这种方法对复杂的HTML或嵌套标签处理可能不准确,因此推荐使用DOM或Jsoup。 4. **工具类**: 为了便于复用,可以创建一个工具类,封装读取和...
- BeanUtils:提供对Java反射和自省API的封装,简化对象属性的访问。 - Chain:实现责任链模式,用于组织复杂的处理流程。 - CLI:处理命令行参数和选项,提供简单易用的API。 - Codec:包含各种编码解码算法,如Hex...
以下是一个简单的Jsoup爬虫示例: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class SimpleCrawler { public static void main(String[] args) throws Exception { String url =...
Jsoup是一个非常流行的库,它提供了CSS选择器和DOM操作,使得解析HTML变得简单易懂。HtmlUnit是一个无头浏览器,可以执行JavaScript,对于需要动态加载内容的网页更为适用。 3. **数据提取**:在获取HTML后,我们...
10. **可扩展性和维护性**:优秀的代码设计应考虑到未来可能的功能扩展,使用面向对象的原则,如封装、继承和多态,可以提高代码的可维护性。 通过以上分析,我们对这个Java简单浏览器的实现有了初步的了解。实际上...
这个实例代码展示了如何封装一个简单的功能,用于从指定的网页URL中抓取并下载图片。下面我们将详细分析这段代码及其涉及的关键知识点。 1. **URL类**:在Java中,`java.net.URL`类用于表示统一资源定位符,即我们...
对于数据解析,可以使用Jsoup或Jackson库;对于并发处理,可以使用多线程或异步编程模型。 总的来说,Java开发简单网络爬虫涉及到HTTP协议的理解、HTTP客户端库的使用以及数据解析技术。通过HttpWatch等工具分析...
它提供了一种简单的方式来解析、操作和提取数据。虽然Jsoup本身并不直接支持HTML转图片,但可以通过结合其他库(如JavaFX或Batik),先使用Jsoup解析HTML,然后利用其他库进行转换。 4. **Headless Browser**:在...