【问题标题】:A Java-based Readability-like parser一个基于 Java 的类似可读性的解析器
【发布时间】:2013-02-25 08:32:58
【问题描述】:

我想知道有哪些独立选项可用于解析普通网页并将其转换为易于阅读的格式,这些选项由 Pocket、Readability 和 Instapaper 等服务提供。

我主要是在寻找要包含在我的应用程序中的 Java 解析器库,但总的来说,各种独立工具都会受到赞赏。

谢谢。

【问题讨论】:

  • 似乎找不到任何页面,甚至描述了这种“easyread”文件格式。你确定这不是一些专有的东西?
  • easyread 是我发明的一个术语。它基本上是从样板页面内容中解析和剥离文章的主要文本,以使其更易于阅读

标签: java html-parsing readability


【解决方案1】:

我认为您正在追求Snacktory,这似乎是当今 Java 最先进的技术,取代了 jreadability。

【讨论】:

  • 我会小心地将业余库标记为“最先进的”,对于大于 2048 字节的流,Snacktory 将失败。证据就在布丁中:de.jetwick.snacktory.Converter#detectCharset。 java.lang.StringIndexOutOfBoundsException: String index out of range: 2048 at java.lang.String.charAt(String.java:658) at de.jetwick.snacktory.Converter.detectCharset(Converter.java:191) at
【解决方案2】:

Snackatory 现在自己声明它已经过时并建议使用Crux。

但也有Readability4J。它是 Mozilla 的 Readability.js 的 Kotlin 端口,用于 Firefox 的阅读器视图。所以 Readability4J 的输出与 Firefox 的阅读器视图完全匹配。

免责声明:我是 Readability4J 的作者。但我只是移植了它,感谢 Mozilla 的出色工作:https://github.com/mozilla/readability。

【讨论】:

  • 哇,谢谢,你做得很好。我花了很多时间将我的项目从 Mozilla 的 Readability.js 转移到 Java/Kotlin 库,很棒的仓库。
【解决方案3】:

JSoup 是第一个想到的库。它非常适合抓取 HTML。您可以轻松地从网页中删除所有标签,只留下文本。 (如果你知道目标页面的结构,你可以只使用特定的选择器来获取你想要的部分,或者排除你想要的部分。)

再说一次,您可能只是想要Flying Saucer 之类的东西,它会尽力将网页呈现为 PDF。

【讨论】:

  • 如果您只想删除 HTML 标记,这还不错。如果您想真正删除分散注意力的广告和导航栏以及所有这些东西,这还不够。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-01
  • 2011-12-25
  • 1970-01-01
相关资源
最近更新 更多