Парсинг HTML страниц на Java с помощью Jsoup

Поделиться
HTML-код
  • Опубликовано: 11 сен 2024
  • #devmark #java #html В этом видео мы рассмотрим библиотеку для Java под названием Jsoup. Она позволяет легко парсить любые html страницы, извлекая из них текст, адреса гиперссылок и любую другую полезную информацию. Также вкратце рассмотрим синтаксис css-выражений для выбора элементов по определённым условиям: по имени тэга, по имени класса и по id элемента. После просмотра данного видео вы уже сможете написать простейший краулер - программу для индексирования содержимого сайтов.
    Статья по теме: devmark.ru/art...
    Все новости проекта: t.me/devmark_ru

Комментарии • 44

  • @user-dc4xf7tf6p
    @user-dc4xf7tf6p 10 месяцев назад +1

    Супер!!! Я бы посоветовал поучиться, в подаче материала, многим лекторам с различных учебных курсов!!! Ну можно же объяснить нормальным языком. Зачастую лекторы общаются с аудиторией на "профессиональном" сленге, не понимая, что люди пришли учиться, и многие с "нуля". Доходчивое объяснение-это талант. Спасибо!!!

  • @Rompashke
    @Rompashke Год назад +3

    Классная, атмосферная подача. Хорошая дикция. Понятное донесение информации. Продолжайте в том же духе. Мне как обучающемуся ваши видео были очень полезны.

  • @МаксМакс-ч8к
    @МаксМакс-ч8к 2 года назад +2

    Здорово! Спасибо за урок👍👍👍

  • @svetlanamazhaykina6918
    @svetlanamazhaykina6918 8 месяцев назад

    Спасибо за Ваш труд! Коммент в поддержку канала.

  • @anjelomanoranjan
    @anjelomanoranjan 10 месяцев назад

    Интересно было бы посмотреть как Вы напишите CRUD приложение с использование библиотеки Gson для парсинга

  • @valera3146
    @valera3146 11 месяцев назад

    Спасибо, ждем парсинг XML

  • @МаксМакс-ч8к
    @МаксМакс-ч8к 2 года назад +3

    Было бы круто прикрутить туда ForkJoin + БД👍👍👍

    • @devmark
      @devmark  2 года назад +1

      Согласен, но тема данного видео - обзор возможностей Jsoup.

    • @aza8483
      @aza8483 Год назад

      привет)вы парсинг страниц умеете делать?нужно было написать код парсинга страниц ,если это возможно напишите тут ,свяжемся

    • @МаксМакс-ч8к
      @МаксМакс-ч8к Год назад

      @@aza8483 привет, а что нужно спарсить?

    • @devmark
      @devmark  Год назад

      Напишите мне на сайте devmark.ru в комментариях. Там стоит премодерация и ваше сообщение не будет опубликовано.

    • @aza8483
      @aza8483 Год назад

      @@МаксМакс-ч8к как с тобой связаться?

  • @Novichek55
    @Novichek55 Год назад

    как получить значение атрибута value из какого-либо элемента html страницы, если этот элемент имеет атрибут disabled (тоесть отключен), в этом случае получатся value=0 а мне надо получить его реальное значение как в браузере???

  • @Leonardo-gd2iz
    @Leonardo-gd2iz 9 месяцев назад

    А как разложить на модель? Предположим есть всего три корневых дива и куча вложенных дивов в каждый из этих дивов и в них еще вложенны span элементы. Хотелось бы просто иметь модель: getDiv(1).getDiv(0).getSpan(5) и т.п.

    • @devmark
      @devmark  9 месяцев назад

      Прям в такую модель разложить не получится, если только явно не хардкодить. Но можно использовать выражения, подобные xpath. Например: "> div:eq(1) > div:eq(0) > span:eq(5)". Подробнее см. jsoup.org/cookbook/extracting-data/selector-syntax

  • @EdwardNorthwind
    @EdwardNorthwind Год назад

    Что зв настройка, что ИДЕЯ показывает класс переменной?
    var document :Document

  • @user-vl9km6ot1h
    @user-vl9km6ot1h Год назад +1

    Жаль что не сначала от и до) ничерта не понял)

  • @GrekoRoman
    @GrekoRoman Год назад

    Как с помощью данной библиотеки можно проверять количество товаров на сайте (странице) с частотой в 1 мин и при превышении заданного значения отдавать результат во внешний сервис (тлг например)?

    • @МаксимКолпащиков-щ1ж
      @МаксимКолпащиков-щ1ж Год назад

      Написать свой сервер (на спринг буте например), которому настроить scheduler. Он раз в минуту будет через библиотеку парсить данные и подсчитывать их, а потом слать в телегу

  • @user-ys8ok2sz9b
    @user-ys8ok2sz9b 2 года назад

    При попытке взять страницу с любого https-сайта выдает java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
    Как быть?

    • @devmark
      @devmark  2 года назад

      Уточните пожалуйста, какая у вас версия jdk и какой сайт вызывает такую ошибку? Только что проверил несколько популярных сайтов, у меня на java 18 всё работает.

  • @ziomek7975
    @ziomek7975 Год назад

    На страницу есть несколько svg тегов и все из них он видит кроме того, который мне нужен, пробовал найти див, в котором данный тег находится и он при выводе оказывается пустым будто бы в нем нет этого svg тега, хотя он там есть.

    • @devmark
      @devmark  Год назад

      Возможно, там разметка "битая"?

  • @user-vj6by6vx6i
    @user-vj6by6vx6i 2 года назад

    добрый день, можете подсказать, как парсить сайты с пагинацией?

    • @devmark
      @devmark  2 года назад

      Так же, как и прочие сайты. Нужно найти, какой параметр в урле отвечает за номер текущей страницы (как правило p или page), и перебирать их пока они не закончатся. Но лучше парсить прямо ссылки на конкретные страницы (если они есть конечно же).

  • @ronyrein7946
    @ronyrein7946 7 месяцев назад

    Урок классный, но нету объяснения как создать заготовку на maven

    • @devmark
      @devmark  7 месяцев назад

      Заготовку с помощью Idea сделать довольно просто. Выбираем File -> New Project -> Maven.

    • @ronyrein7946
      @ronyrein7946 6 месяцев назад

      спасибо@@devmark

  • @winter-lb7id
    @winter-lb7id 2 месяца назад

    Что означает var document :Document ?
    у моего document нет никаких методов ((

    • @devmark
      @devmark  2 месяца назад

      Это просто сокращение от Document document. Проверьте, что вы импортируете класс именно из библиотеки jsoup.

    • @winter-lb7id
      @winter-lb7id 2 месяца назад

      @@devmark удалил :Document - заработало. По сути обычный html , но не интуитивно понятно по синтаксису

  • @locky1827
    @locky1827 Год назад

    Эээ. Синтаксис как Котлин , проект вроде Java. Так можно и не понять сразу

    • @devmark
      @devmark  Год назад

      Вы про ключевое слово var?)

  • @serg_777
    @serg_777 Год назад

    java и var как то не в тему, можно было бы объяснить каким образом это работает...

    • @devmark
      @devmark  Год назад

      это больше дело привычки)

    • @the_green_elephant
      @the_green_elephant 9 месяцев назад

      @serg_777 да какая разница, есть var, или нет. Для человека, который программированием занимается - само собой разумеющееся, что здесь переменная создаётся и инициализируется

    • @felixredcat4400
      @felixredcat4400 Месяц назад

      Не очевидно новичку.
      Int a = 0; //понятно.
      Какой такой VAR
      Что это такое?

  • @mimotech6221
    @mimotech6221 11 месяцев назад +1

    Как сканировать сайт на каждый 5 минут и если появляется новый объявление уведомлять об этом на эмайл, на java ​@devmark

    • @devmark
      @devmark  11 месяцев назад +1

      В соседнем комменте уже описали похожий кейс: настриваем шедулер на срабатывание раз в 5 минут, он сравнивает предыдущую версию страницы с новой, и если они отличаются - отправляет email.

  • @bombito4299
    @bombito4299 Год назад

    Как сделать парсинг ссылки с пробелами?
    Вот пример

    • @devmark
      @devmark  Год назад

      Данный элемент имеет несколько классов, которые перечислены через пробел. Искать элемент можно по любому из них. Например, по первому ("tile").