从html

时间:2016-06-12 19:21:40

标签: java html jsoup

我正在尝试在Google Chrome中创建搜索功能。给定一个字符串,它将突出显示包含此字符串的所有区我用java。我

要做到这一点,首先我需要提取所有可见文本。我试图分析html页面,以弄清楚如何只提取文本。

对于看起来像这样的部分,似乎

为此,我计划使用jsoup。我不知道如何从看起来像这样的部分中提取文本。 (这是一个youtube评论,其中包含“阅读更多”链接和“显示更少”链接)。

从这一节开始,我尝试提取“不会说谎,数据狗是可以添加的”和(“Les mer”或“Vis mindre”,具体取决于它们中的哪一个是可见的)。

<div class="comment-renderer-text" tabindex="0" role="article">
    <div class="comment-renderer-text-content">Not gonna lie, dat dog is ADORABLE</div>
        <div class="comment-text-toggle hid">
            <div class="comment-text-toggle-link read-more">
                <button class="yt-uix-button yt-uix-button-size-default yt-uix-button-link" type="button" onclick="return false;">
                    <span class="yt-uix-button-content">Les mer
                    </span>
                </button>
            </div>
        <div class="comment-text-toggle-link show-less hid">
            <button class="yt-uix-button yt-uix-button-size-default yt-uix-button-link" type="button" onclick="return false;">
                <span class="yt-uix-button-content">Vis mindre
                </span>
            </button>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

我将假设给出的html代码已经在名为doc的文档中。

String text = doc.select("div.comment-renderer-text-content").first().text();

doc.select命令获取包含指定HTML查询的Elements。然后我得到第一个并将其转换为文本。

更多内容可以在这里阅读:Jsoup Selector

修改

您可以使用此代码获取可见文本而不是每个类:

String text = doc.body().text();