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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от 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
Do***ent doc = Jsoup.parse(html);
Elements images = doc.select("img");


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

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


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