Как разобрать по jsoup для конкретного элемента из div? - PullRequest
0 голосов
/ 26 августа 2018

У меня есть сайт с заголовками ".entry-title" в разделе "td_module_5".

Я написал код для парсинга с помощью jsoup ".entry-title", но этот "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();
}

Как разобрать по jsoup ".entry-title" только из div "td_module_5"?

Пример html-кода:

<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>

1 Ответ

0 голосов
/ 26 августа 2018

Вы можете использовать следующий селектор пути css:

    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());
    }

В вашем случае, потому что вы хотите выбрать под конкретным divс определенным классом CSS вы должны использовать ниже:

    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());
    }

Вывод:

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