Пишу приложение на 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
тегах - тоже проверьте это.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Недавно начал использовать sass в sublime-text, так вот скажем при указании какого нибудь background-image пропал привычный автокомплит при выборе изображенияС...