如何提取所有的文本发现在一个网页JSoup



有人知道我如何提取<p> blah blah blah </p> 以外的文本(基本上是在其他元素中发现的文本)吗?'
在网页中。它必须是一个完整的时间顺序,因为它是如何显示在原始网页。

我在<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 !:)

您需要学习CSS选择器,因为jsoup使用该语法和概念来查询文档。

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

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

或者更一般的:

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

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

我强烈建议使用jQuery。

使用jQuery文本函数获取不带html标签的文本。使用jQuery html函数获取所有内容,包括html标签。

提取html标签之间的文本你可以这样做:

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