#java #jsoup #html-parsing
Вопрос:
Я хотел бы получить 71–85
доступ к веб-странице с помощью Jsoup. После некоторых проб и ошибок я смог сделать это, используя следующий код:
document.select("#row_13 > div.row-desc > div").text();
Я не думаю, что это хорошее решение, подумал он. Я использую здесь id
то, что является частью таблицы. Возможно, лучшим подходом было бы получить то, что появится после Pages
. Однако я понятия не имею, как к этому подойти. Любая помощь была бы очень кстати!
<div style="" class=" row row-even" id="row_13">
<div class="row-label" >
<div class="white_label ">Pages</div>
</div>
<div class="row-desc">
<div class="white_desc " style="width: 100%">
71–85
</div>
</div>
</div>
EDI
Вот страница, с которой взят вышеуказанный контент:
http://cejsh.icm.edu.pl/cejsh/element/bwmeta1.element.desklight-dc6b14c1-8478-426a-8f2e-bb5636e0a5e9
Ответ №1:
Возможно, лучшим подходом было бы получить то, что появится после
Pages
.
Сначала выберите элемент с классом row-label
, содержащий текст «Страницы». Затем выберите первого родственника этого элемента и извлеките его текст.
Вы можете сделать это вот так:
document.select(".row-label:contains(Pages) *").first().text();
Вы даже можете опустить .first()
, если точно знаете, что есть только один элемент с классом row-label
, который содержит текст «Страницы».:
document.select(".row-label:contains(Pages) *").text();
Обратитесь к Selector
синтаксису для получения информации об используемых обозначениях.