Пишу приложение на Java, связанное с парсингом исходного кода страницы. Вопрос заключается в следующем. Пытаюсь парсить исходный код следующим образом:
Document doc = Jsoup.connect("http://example.com/").get();
Парсится нормально. Но(!) смотрю полученый исходный код - там не все блоки. К примеру, в браузере с помощью "Исследовать элемент" я этот блок и всё, что в нем есть вижу, а в полученом исходном коде с помощью Jsoup этого блока нет. Собственно, вопрос: как парсить весь исходный код целиком?
Вероятнее всего желаемый элемент создается при помощи JavaScript кода запускаемым браузером и/или с помощью дополнительных API запросов. JSoup - это не браузер и в нем нет JavaScript движка. В doc Вы получаете исходный "статический" HTML.
Вариантов решить эту проблему несколько:
selenium, открыть желаемую страницу в selenium-powered браузере, дать ему выполнить свою работу по загрузке страницы и пропарсить нужные данные; далее либо получить исходный код страницы через getPageSource() и отдать это JSoup на парсинг, либо продолжить спользовать selenium webdriver API Также иногда бывает, что нужные данные уже присутствуют в HTML, но только в другом месте. Например, иногда в script тегах - тоже проверьте это.
Продвижение своими сайтами как стратегия роста и независимости