Как можно получить 56,4115 вот отсюда:
<td class="weak">
<ins class="rubl">руб.</ins>
56,4115
</td>
Пробовала так, но первого чайлда нет:
Document doc = Jsoup.connect("https://cbr.ru/").get();
Elements tdElements = doc.getElementsByAttributeValue("class", "weak");
tdElements.forEach(tdElement -> {
Element insElement = tdElement.child(1);
});
Здесь нет второго вложенного элемента, но есть просто внутренний текст, его и нужно прочесть:
Document doc = Jsoup.connect("https://cbr.ru/").get();
Elements tdElements = doc.getElementsByAttributeValue("class", "weak");
tdElements.forEach(tdElement -> System.out.println(tdElement.ownText()));
"Чайлда" и правда нет. Метод child(число) возвращает один дочерний элемент (то есть узел, обрамленный тегами). Зато есть дочерние текстовые узлы, которые можно получить отдельным списком textNodes() или вместе с остальными узлами childNodes()
В случае, когда текстовых узлов больше чем один можно выбрать нужный пользуясь одним из этих методов. Если только один, то пользуйтесь соседним ответом
Я сделал вот так.
Document doc = Jsoup.connect("https://cbr.ru/").get();
String result = doc.getElementsByAttributeValue("class", "weak").select("td").get(0).html();
//если методу get передать значение 1, то получится результат в евро
result=result.substring(result.lastIndexOf(';')+1);
System.out.println(result);
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники