Я хочу загрузить веб-контент с сайта URI и использовать селекторы, чтобы получить полезную информацию. Я попробовал JSoup, который позволяет мне select elements with a CSS Selector. К сожалению, Jsoup не работает в качестве браузера и не обрабатывает Javascript, а файлы cookie обрабатывает Cookies. Вот почему я изучил использование JavaFX WebEngine, который работает как браузер. Но класс WebEngine возвращает Documents, которые очень ограничены в вариантах выбора по сравнению с JSoup. Единственные селекторы - Id или по Tag.Селектор содержимого веб-страницы с использованием WebEngine
Есть ли чистый способ использования WebEngine JavaFX с более специализированными возможностями выбора?
Или существуют другие реализации браузера на Java, которые позволяют использовать более специализированные варианты? Реализация должна быть быстрой.
Лучшее решение, которое я могу придумать сейчас является следующее:
- Использование WebEngine из JavaFX получить Document объект которого Javascript будет анализироваться.
- Преобразование документа к Строка с использованием Transformer.
- Передайте эту строку в качестве аргумента в объект JSoup и используйте их CSS возможности выбора.
Я не хочу открывать настоящий браузер, мне не нужно отображать какой-либо графический интерфейс. Я просто хочу имитировать браузер с javascript и куки и т. Д. Selenium HTMLUnitDriver близок, но его реализация javascript действительно отсутствует. – Vjeetje
, тогда отправляйтесь с фантомами. Он использует безгласный движок webkit и должен иметь возможность запускать любой реальный JavaScript. Я обнаружил, что лучшее решение в тех случаях, когда я не мог напрямую найти AJAX-вызовы. – luksch
Ow Я не понимал, что в качестве внешней библиотеки есть реализация Java как PhantomJSDriver. Библиотека становится устаревшей, но она точно соответствует той роли, которую я ищу – Vjeetje