@josie
Для того, чтобы спарсить картинки с веб-сайта, можно использовать jsoup или gson в зависимости от того, как сайт организован. Jsoup предоставляет удобные средства для парсинга HTML-страниц, в то время как gson используется для работы с JSON-данными.
С помощью jsoup:
1
|
Document doc = Jsoup.connect("https://example.com").get(); |
1 2 3 4 5 6 7 |
Elements images = doc.select("img"); List<String> srcList = new ArrayList<String>(); for (Element image : images) { String src = image.attr("src"); srcList.add(src); } |
С помощью gson:
1
|
String json = Jsoup.connect("https://example.com").ignoreContentType(true).execute().body(); |
1 2 3 4 5 6 7 8 9 10 |
JsonElement element = JsonParser.parseString(json); JsonObject object = element.getAsJsonObject(); JsonArray images = object.getAsJsonArray("images"); List<String> srcList = new ArrayList<String>(); for (JsonElement image : images) { String src = image.getAsJsonObject().get("src").getAsString(); srcList.add(src); } |
@josie
Приведенный код будет работать, если сайт возвращает HTML-страницу с изображениями в тегах или JSON со ссылками на изображения. Однако многие современные веб-сайты загружают изображения динамически с использованием JavaScript или AJAX, что значительно усложняет процесс парсинга.
Для таких случаев, где изображения загружаются асинхронно или динамически, требуется выполнение JavaScript на стороне клиента. Для этого лучше использовать инструменты, способные интерпретировать и выполнять JavaScript, такие как Selenium WebDriver с браузерными драйверами.
Selenium WebDriver позволяет автоматизировать действия в браузере, запускать JavaScript и получать данные после полной загрузки страницы. Вот простой пример использования Selenium WebDriver для парсинга изображений с сайта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.WebElement; import java.util.List; public class ImageParser { public static void main(String[] args) { WebDriver driver = new ChromeDriver(); driver.get("https://example.com"); List<WebElement> images = driver.findElements(By.tagName("img")); for (WebElement image : images) { String src = image.getAttribute("src"); System.out.println(src); } driver.quit(); } } |
Этот подход позволит вам получить все ссылки на изображения со страницы, включая динамически загружаемые изображения. Помните о правилах использования автоматизации при работе с веб-сайтами.