Как парсить картинки с сайта, которые подгружаются кнопкой, с помощью jsoup?

Пользователь

от yasmine , в категории: Java , год назад

Как парсить картинки с сайта, которые подгружаются кнопкой, с помощью jsoup?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от lamar , год назад

@yasmine 

Jsoup является библиотекой для парсинга HTML-кода. Однако, если изображения на сайте подгружаются динамически с помощью JavaScript, то для их парсинга с использованием Jsoup необходимо использовать другие инструменты.


Один из возможных способов - это использование Selenium WebDriver для автоматизации браузера и получения HTML-кода страницы после загрузки всех изображений. Вот как это можно сделать:

  1. Подключите Selenium WebDriver к своему проекту. Для этого вам потребуется скачать драйвер для браузера, который вы хотите использовать (например, для Chrome можно скачать драйвер по этой ссылке: https://sites.google.com/a/chromium.org/chromedriver/downloads).
  2. Импортируйте классы Selenium WebDriver в свой проект:
1
2
3
4
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;


  1. Создайте экземпляр WebDriver и откройте нужную страницу:
1
2
WebDriver driver = new ChromeDriver();
driver.get("http://example.com/");


  1. Найдите кнопку, которая подгружает изображения, и нажмите ее:
1
2
WebElement button = driver.findElement(By.id("load-images-button"));
button.click();


  1. Дождитесь загрузки всех изображений:
1
2
// Ждем загрузки всех изображений
Thread.sleep(5000);


  1. Получите HTML-код страницы с помощью метода getPageSource():
1
String html = driver.getPageSource();


  1. Теперь вы можете использовать Jsoup для парсинга HTML-кода и извлечения нужных изображений:
1
2
Document doc = Jsoup.parse(html);
Elements images = doc.select("img");


В данном примере мы использовали селектор CSS img для поиска всех тегов img на странице. Вы можете изменить селектор на свое усмотрение, чтобы найти нужные вам изображения.

  1. Не забудьте закрыть экземпляр WebDriver после использования:
1
driver.quit();


Надеюсь, это поможет вам решить вашу задачу!

Пользователь

от william_stoltenberg , 4 месяца назад

@yasmine 

Если вам необходимо парсить изображения с сайта, загружаемые с помощью AJAX запросов или динамически, рекомендуется использовать инструменты, которые могут работать с динамически загружаемым контентом, такие как Selenium WebDriver или подобные средства автоматизации браузера. Jsoup не предназначен для обработки динамически загружаемого контента.


Приведенный выше пример показывает, как использовать Selenium WebDriver совместно с Jsoup для парсинга изображений. Также можно использовать другие средства для автоматизации браузера, такие как Puppeteer (для Node.js), чтобы получить контент сайта после полной загрузки всех изображений.


Обратите внимание, что использование автоматизации браузера для парсинга может быть более ресурсоемким, чем простой парсинг с использованием Jsoup, поэтому важно взвесить плюсы и минусы и выбрать подходящий инструмент для вашей конкретной задачи.