如何基于html实体的可视化表示(或至少接近它)来获取页面的换行符?

时间:2012-06-27 15:40:34

标签: java web-scraping

我有一个网页的一部分,我确定为我感兴趣的领域。它可能包含多个html标签,但我想将其解释为多行文字,或者至少尽可能接近浏览器呈现的方式。

让我举个例子。

<div>
<p>Line 1<p>
</div>
<div><p>Line 2<p></div> <div><p>Line 3 <p></div>
<p>Line 4<p></div><br />Line 5

在浏览器中,它呈现如下:

Line 1

Line 2

Line 3

Line 4

Line 5

我想通过某种lib运行原始html并获取包含以下内容的文本(或关闭):

Line 1
Line 2
Line 3
Line 4
Line 5

请注意,我不想恢复Html中存在的原始换行符(如this question points out。我想将html实体解释为与其呈现方式类似的换行符是否有可以执行此操作的库?我已经使用过Jsoup&#39; TextNode.getWholeText()但它没有解析html标签。

编辑:对于那里的linux用户,我想要类似于以下结果:

$ lynx -dump file.html > file.txt

1 个答案:

答案 0 :(得分:0)

默认情况下,HTML中的<div> tags and <p>标记周围有填充和边距块。所以很明显,这就是为什么浏览器会像它一样呈现它。

创建一个CSS文件并禁用填充和边距。

另外,为什么Java标记了?如果您在Java Servlet页面中执行此操作,请检查System.out.println语句。