Java 从html获取将显示给用户的文本

Java 从html获取将显示给用户的文本,java,html,nlp,screen-scraping,Java,Html,Nlp,Screen Scraping,有点随意,我想玩一些NLP的东西,我想: 从HTML获取将在浏览器中显示给用户的所有文本 我的理想输出中不会有任何标记,只会有句号(以及使用的任何其他标点符号)和新行字符,尽管我可以容忍在这方面出现相当多的失败(输出中会出现随机的其他内容) 如果有办法在内容可能无法继续的情况下插入换行符或句号,那么这将被视为额外的奖励。e、 g: ul或option标签中的项目可以用句号分隔(或者老实说,只是忽略了) 我正在使用Java,但我有兴趣看到任何这样做的代码 我可以(如果需要的话也会)想出一些办法来做

有点随意,我想玩一些NLP的东西,我想:

从HTML获取将在浏览器中显示给用户的所有文本

我的理想输出中不会有任何标记,只会有句号(以及使用的任何其他标点符号)和新行字符,尽管我可以容忍在这方面出现相当多的失败(输出中会出现随机的其他内容)

如果有办法在内容可能无法继续的情况下插入换行符或句号,那么这将被视为额外的奖励。e、 g:

ul或option标签中的项目可以用句号分隔(或者老实说,只是忽略了)

我正在使用Java,但我有兴趣看到任何这样做的代码

我可以(如果需要的话也会)想出一些办法来做这件事,只是想知道是否已经有类似的事情发生了,因为这可能比我在一个下午想出的要好;-)

如果我最终这样做,我可能会编写的代码的一个示例是,使用SAX解析器在p标记中查找内容,去掉任何span或strong etc标记,如果我点击了一个div或另一个p而没有一个句号,则添加一个句号


欢迎任何指点或建议。

我会把所有有标记的东西都去掉,如果你想在每句话的末尾有一个句号,你可以检查结束标记并放一个句号

如果你有

<strong> test </strong>
测试

(以及其他改变测试外观的标签)您可以在此处放置条件,以避免在此处放置句号。

Hmmm。。。几乎任何HTML解析器都可以用来创建您想要的效果——只需运行所有标记并仅发送文本元素,并为每个块元素的结束标记发送LF。正如您所说,SAX实现将是简单而直接的。

HTML解析器似乎是一个合理的起点

例如,它们有很多,而且似乎工作得很好

它们很好,因为它们修复了标记,允许您更一致地处理它们,即使您只是删除它们

但事实证明,您可能希望摆脱脚本标记、元数据等,在这种情况下,您最好使用格式良好的XML,这些人从“野生”html中获得


与此相关的问题很多(比如一个),但是您应该搜索“HTML解析”;-)

谢谢,我想我会继续编码;-),我有点想可能有一些聪明的东西在那里-可能有一些被用作可访问性的一部分?这可能有一个更好的系统来决定用户应该阅读/看到什么。