如何通过 jsoup 解析 div 中的特定元素?

How to parce by jsoup for specific element from div?

我在 div "td_module_5".

中有一个标题为“.entry-title”的网站

我用jsoup“.entry-title”写了一个parcing代码,但是这个"entry-title"包含在另一个div中,例如"td_mega_menu".

doc = Jsoup.connect(blogUrl).get();
title = doc.select(".entry-title");
titleList.clear();
for (Element titles : title) {
titleList.add(titles.text());
}
} catch (IOException e) {
e.printStackTrace();
}

如何仅从 div "td_module_5" 中通过 jsoup ".entry-title" 进行解析?

示例html-code:

<div class="td_module_5 td_module_wrap td-animation-stack" >
            <div class="td-module-image td-module-image-float">
                <div class="td-module-thumb"><a class="td-admin-edit" href="https://unspecific.ru/wp-admin/post.php?post=7148&amp;action=edit">edit</a><a href="https://unspecific.ru/bakteriofagi-smogut-vylechit-nyak-i-bk/" rel="bookmark" title="Бактериофаги смогут вылечить НЯК и БК?"><img width="260" height="195" class="entry-thumb" src="https://unspecific.ru/wp-content/uploads/2018/07/bacf-260x195.jpg" srcset="https://unspecific.ru/wp-content/uploads/2018/07/bacf-260x195.jpg 260w, https://unspecific.ru/wp-content/uploads/2018/07/bacf-300x225.jpg 300w, https://unspecific.ru/wp-content/uploads/2018/07/bacf-80x60.jpg 80w, https://unspecific.ru/wp-content/uploads/2018/07/bacf-245x184.jpg 245w, https://unspecific.ru/wp-content/uploads/2018/07/bacf.jpg 640w" sizes="(max-width: 260px) 100vw, 260px" alt="Бактериофаг и бактерия" title="Бактериофаги смогут вылечить НЯК и БК?"/></a></div>            </div>

            <div class="td-item-details td-category-small">
                <a href="https://unspecific.ru/category/news/" class="td-post-category">Новости в лечении ВЗК</a>                
                <h3 class="entry-title td-module-title"><a href="https://unspecific.ru/bakteriofagi-smogut-vylechit-nyak-i-bk/" rel="bookmark" title="Бактериофаги смогут вылечить НЯК и БК?">Бактериофаги смогут вылечить НЯК и БК?</a></h3>

您可以使用以下 css 路径 select 或 :

    Element title = doc.select("div > .entry-title").first();
    System.out.println(title.text());

或者,如果您想查找所有标题:

    Elements titles = doc.select("div > .entry-title");

    for (Element title: titles) {
        System.out.println(title.text());
    }

在你的情况下,因为你想 select 下特定 div 与特定 css class 你应该使用下面:

    Elements titles = doc.select("div.td_module_5.td_module_wrap.td-animation-stack > div > .entry-title");

    for (Element title: titles) {
        System.out.println(title.text());
    }

输出为:

Бактериофаги смогут вылечить НЯК и БК?