如何使用Jsoup读取h3和text元素之后?

时间:2019-04-11 19:48:13

标签: java html jsoup

我想读取<h3><h3>之间的文本,所以我想创建一个json模型,例如title:text,text,h3的文本和无广告的文本。

{
  "title": "text,text,text",
  "title": "text",
  "title": "text",
  ...
}

在这种情况下,如何使用Java或Kotlin做到这一点?

<div class="biri" id="biri">
    <h1>Yoksa Birisi mi itti?</h1>
    <h3>Title</h3>Text,
    <br>Text,
    <br>Text.
    <h3>Title:</h3>Text
    <h3>Title:</h3>Text
    <div class="ad">
        <div style="max-width:336px;">
            <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
            <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-7180771993103993" data-ad-slot="2897611612" data-ad-format="auto"></ins>
            <script>
                (adsbygoogle = window.adsbygoogle || []).push({});
            </script>
        </div>
    </div>
    <h3>Title</h3>Text:
    <b>Text:</b> (Text
    <br>
</div>

1 个答案:

答案 0 :(得分:0)

您可以使用h3获取所有Document.select()标签:

Document doc = Jsoup.parse(html);
List<String> h3s = doc.select("h3").stream()
        .map(Element::text)
        .collect(Collectors.toList());

这将提取所有h3标签的内容并收集它们的内容。结果是这样的:

[Title, Title:, Title:, Title]

要创建的JSON无效,因为JSON对象中的键必须是唯一的,所以不能有多个h3键。