我需要从HTM1片段中提取所有文本。

例:

输入:<p><div>how are</div> you doing?</p><p>I'm doing well</p>

输出:how are you doing? I'm doing well

我发现了类似的问题,例如Text Extraction from HTML Java,但它们都只是删除了<p>标记,但没有删除内部元素。

最初,我尝试列出每个<p>标记的子项,并串联其内容,然后递归检查每个孙子,并串联其子项,依此类推,直到只有文本为止。问题是某些文本没有被标签包围,只是纯文本。

我也尝试过Jsoup.parse(html).select("p").text(),但输出为"[]I'm doing well"

这似乎是对Web爬网程序类型的非常普遍的需求,但是我找不到解决方案。

最佳答案

尝试这个:

Document doc = Jsoup.parse("<p><div>how are</div> you doing?</p><p>I'm doing well</p>");
String body = doc.body().text();

关于java - Jsoup:以人类阅读的方式提取文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24225412/

10-10 12:49