#jsoup
Вопрос:
Я здесь в первый раз. Я могу разобрать таблицу. Нужны все дети в классе table_offers_day.
Но моя треска мне ничего не дает.
Документ document = Jsoup.parse(новый URL(«https://www.ittour.com.ua»), 3000); Элементы Elements = document.getElementsByClass(«table_offers_day»);
System.out.println(elements.text());
Ответ №1:
Этого содержимого нет в источнике-содержимое загружается с помощью вызова javascript ajax. jsoup является синтаксическим анализатором HTML и не выполняет javascript. Вы можете быстро проверить наличие этого типа контента, используя источник просмотра вашего браузера против проверки. Просмотр источника показывает исходный HTML-код, доставленный сервером, и то, что может видеть jsoup. Проверьте DOM после того, как браузер проанализировал его, удаленно извлек содержимое и добавил его в DOM и т. Д…
Если вы используете Проверку, просмотр сети и перезагрузку, вы увидите вызов json для извлечения этого содержимого. Вероятно, вы можете получить его просто так.
Я думаю, что этот подход (объединение jsoup для HTML и, например, gson для декодирования json) хорошо работает и может быть более эффективным, чем запуск полностью безголового браузера, поскольку это потребует гораздо больше сети, памяти и процессора. Но для его настройки может потребоваться больше работы, так что это компромисс, который нужно пересмотреть.