如何提取网页中找到的所有文本JSoup

时间:2014-07-28 13:52:20

标签: java html jsoup

有谁知道如何提取<p> blah blah blah </p> 之外的文本(基本上也可以在其他元素中找到文本) `
在网页中。它必须是完整的时间顺序,就像它在原始webapge中的显示方式一样。

我在<p> tags之外的意思也是从<h1>, <h2>,<h3> and <h4>标题中提取单词! 因此对于例如给出一个HTML网页

<html> 
    <h1>Heading 1</h1>
    <h2>Heading 2</h2>
    <p>This is a random paragraph</p> 
    <h1>Heading3</h1> 
    <p>This is another random paragraph</p> 
</html>

*如果主页中的p标签之后还存在标签,则会有点复杂。

所以期望的(按时间顺序排列的)输出如上所示!

*使用JSoup! :)

2 个答案:

答案 0 :(得分:2)

您需要了解CSS selectors,因为jsoup使用该语法和概念来查询文档。

您需要阅读jsoup doc。该文档甚至显示了一个适合您的代码段的示例。

Elements elements = doc.select("p > h1"); // Find a h1 directly following a p.

或更一般地说:

Elements elements = doc.select("h1"); // Find all h1 elements.

然后循环元素集合。在每个元素上,提取元素自己的文本内容。

答案 1 :(得分:1)

我强烈建议使用jQuery来执行此操作。

使用jQuery text函数获取没有html标记的文本。 使用jQuery html函数来获取包括html标记在内的所有内容。

因此,在您的html标签之间提取文本,您可以执行以下操作:

var text = $('html').text();