java - 哪个 HTML DOM 解析器在 Android 上效果最好?

标签 java android parsing dom screen-scraping

我需要在我的 Android 应用程序中处理一些 HTML 页面,我更愿意使用 XPath 来提取相关信息。对于常规 J2SE,有很多可能的实现将常规 HTML 解析为 org.w3c.dom.Document。 :

(列表可能不完整 - 它已从 https://stackoverflow.com/questions/2009897/recommend-an-alternative-to-jtidy 中提取)

但是要估计这些库是否以及如何在 Android 上运行(库大小、cpu 和内存消耗)是非常复杂的。

根据您的经验 - 您为 Android 选择的库是什么?

最佳答案

好吧,看来没人能回答这个问题——那我得自己查查了。

jTidy

我下载了最新的 jTidy 源代码,编译它们并将创建的 jar 文件作为库添加到我的 Android 应用程序中。在我的应用程序(模拟器和真机)中使用 jTidy 没有问题。在运行时 jTidy 也能正常工作——但它似乎不太适合有限的 Android 环境——它工作得非常慢。查看 Logcat 输出,甚至解析一个 ~10kb 的 html 文件都会导致垃圾收集器大量工作。

HTMLCleaner

根据我的经验,HTMLCleaner 在 Android 上也能正常工作;库大小相对较小(v2.2 为 106KB)。然而,它创建的解析 DOM 并不像预期的那样 - HTMLCleaner 插入例如额外的 <span>元素到 DOM 中。如果您想将其显示为 HTML 文件,这可能没问题,但对于我的用例 - 通过 XPath 表达式提取信息 - 这是不行的!

标签汤

未测试

杰里科

未测试

NekoHTML

未测试

JSoup

未测试

关于java - 哪个 HTML DOM 解析器在 Android 上效果最好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545972/

相关文章:

javascript - 如何解析具有类似 XML 结构的文件,但在内容旁边带有自闭合标签(而不是包含内容)

java - Volatile HashMap 与 ConcurrentHashMap

java - 无法从 .net Web 服务获取 JSONArray

java - 如何修复未找到/损坏的表?

android - Gradlew测试不起作用

python - 如何从 Coinmarketcap 解析 BTC 历史数据?

java - 对生成的 QR 码进行样式/着色

java - Jackson Joda 模块将 ISO 日期反序列化为 Joda DateTime

Android AlarmManager 推送通知

html - 在 w3c 中验证时出现 CSS 解析错误