今天再看一个jsoup的问题时候,发现如下代码会出现问题:
Document doc = Jsoup.parse("<table><tr><td>0</td></tr></table>","http://www.iteye.com");
最后发现转换之后td中的内容就丢失了,然后仔细debug一下jsoup的代码,发现在TreeBuilderState这个类中有个nullString变量,内容为“0X0000”,悲剧了,它直接把0作为null字符串对待了,吃掉它了。
最后去http://search.maven.org/#artifactdetails%7Corg.jsoup%7Cjsoup%7C1.6.1%7Cjar,找了一下最新的1.6.1版本源码,发现代码已经发生了改变。前后2段代码如下:
private static String nullString = String.valueOf(0x0000);
private static String nullString = String.valueOf('\u0000');
第一行是1.6.0中的代码,1.6.1中就已经是修改过的了。
后面的修改为\u0000,这样就一切搞定了。
把三方库升级到1.6.1就可以了,开源包在使用上还是要多注意一些,bug总是有的,估计有时候还需要自己去hack修复。选用三方库的时候还是慎重一些。不过就这次碰到的这个问题,是没有办法,htmlparser有它的bug无法满足要求。
分享到:
相关推荐
遇到问题时,可以在官方论坛、GitHub或其他社区寻找解决方案。 总的来说,jsoup是一款强大的HTML解析工具,它简化了HTML处理的复杂性,让开发者可以更加专注于业务逻辑。无论是用于网页抓取、数据提取还是内容清洗...
很好用的一下html页面分析jar包jsoup-1.6.0-sources
jsoup 的主要功能如下: 1. 从一个 URL,文件或字符串中解析 HTML; 2. 使用 DOM 或 CSS 选择器来查找、取出数据; 3. 可操作 HTML 元素、属性、文本; jsoup 是基于 MIT 协议发布的,可放心使用于商业项目。
jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jarjsoup-...
**Jsoup API 深入解析** Jsoup 是一个用于处理和解析HTML的Java库,它提供了强大的功能,使得在Java程序中操作HTML文档变得简单而直观。在Jsoup 1.10.2版本中,这个API进一步优化了对HTML的处理能力,提供了丰富的...
Jsoup 提供 DOM 风格的方法(如 `getElementById()`, `getElementsByTag()`, `select(String cssQuery)` 等)来遍历 Document 对象并抽取所需数据。例如,你可以通过 CSS 选择器选取元素,然后提取它们的属性、文本...
赠送jar包:jsoup-1.14.3.jar; 赠送原API文档:jsoup-1.14.3-javadoc.jar; 赠送源代码:jsoup-1.14.3-sources.jar; 赠送Maven依赖信息文件:jsoup-1.14.3.pom; 包含翻译后的API文档:jsoup-1.14.3-javadoc-API...
**JSoup:Java的网页抓取与解析库** JSoup是一个用Java编写的开源库,专为处理HTML文档而设计。它提供了丰富的API,使得开发者能够轻松地抓取、解析和操作网页内容。JSoup的核心功能包括从网络或本地文件系统获取...
Jsoup在Web抓取、数据分析和网页爬虫项目中广泛应用。本文将深入探讨Jsoup 1.5.2和1.6这两个版本的主要特性、变化以及如何在项目中使用它们。 首先,让我们了解Jsoup的基本功能。Jsoup的核心功能包括: 1. **HTML...
1. `jsoup.jar`:Jsoup的主要库文件,包含了所有的类和方法,导入此文件即可在项目中使用Jsoup。 2. `README.md`或`README.txt`:文件说明,介绍如何使用Jsoup以及可能的注意事项。 3. `LICENSE`:Jsoup的许可协议,...
6. **编码处理**:Jsoup自动处理字符编码问题,使开发者无需担心编码不一致的问题。 7. **性能优化**:Jsoup设计为轻量级且高效的库,即使处理大型HTML文档也能保持良好的性能。 在实际项目中,Jsoup广泛应用于...
**JSoup库与JSoup-Annotations** JSoup是一款强大的Java库,专为处理HTML文档而设计,它提供了方便的API,使得抓取和解析HTML变得简单易行。JSoup能够模拟浏览器的行为,理解和构建DOM树,进而允许开发者通过CSS...
**使用Jsoup获取网页内容并修改** Jsoup是一款强大的Java库,它允许开发者方便地解析、操作和提取HTML内容。在Android开发中,Jsoup常用于网页数据抓取和页面内容的处理。以下将详细解释如何使用Jsoup来实现这个...
Jsoup的核心功能包括: 1. HTML解析:Jsoup能够解析各种各样的HTML源码,无论是干净的结构化HTML还是充满乱七八糟标签的真实网页。它能处理HTML5和HTML4,甚至一些常见的错误格式也能被正确解析。 2. DOM操作:...
**jsoup1.10.3包和jsoupApi帮助文档** Jsoup是一个非常流行的Java库,用于处理和解析HTML。在IT行业中,特别是在Web爬虫和数据抓取领域,jsoup扮演着至关重要的角色。jsoup1.10.3是这个库的一个稳定版本,提供了...
`jsoup-1.11.3-javadoc.jar`包含了该版本的API文档,方便开发者查阅和理解每个方法的功能和用法,而`jsoup-1.11.3-sources.jar`则包含源代码,对于学习和调试Jsoup的内部实现非常有帮助。 Jsoup 的核心功能主要包括...
**Jsoup.jar 包及说明文档** Jsoup是一款在Java平台上广泛使用的HTML解析库,它的主要功能是解析HTML文档,并提供了强大的数据提取和操作能力。Jsoup的核心特性在于其能够模拟浏览器的行为,对HTML进行理解和解析,...
**jsoup:HTML解析与操作库** ...通过实例学习和源码探索,你可以充分利用jsoup的强大功能,解决实际开发中的HTML解析和操作问题。无论你是新手还是经验丰富的开发者,jsoup都是你处理HTML文档的得力助手。
3. **社区支持**:Jsoup有一个活跃的社区,丰富的文档和示例,使得学习和解决问题较为容易;XPath作为标准技术,也有广泛的资料和工具支持。 **应用场景** - **数据抓取**:Jsoup因其易于使用和丰富的API,常被...
**jsoup库详解** jsoup是一个Java库,它专注于处理HTML和XML文档,提供了一种简单、优雅的方式来抓取和操作网页数据。这个库的名字来源于"JavaScript Object Soup"的缩写,暗示了它能将HTML文档转化为易于操作的...