Извлечение изображений с веб-сайта – Примеры Java

Если вы веб-разработчик, графический дизайнер, исследователь, журналист, студент или просто работаете над личным проектом, вам наверняка понадобятся изображения и возможность собирать их с веб-сайтов. Сохранение изображений вручную – копирование каждого URL-адреса и загрузка их по одному – может отнимать много времени и быть неэффективным. Однако вы можете использовать библиотеку Aspose.HTML for Java для автоматизации этого процесса и извлечения изображений с веб-сайта программным путем.

В этой статье мы рассмотрим, как программно извлекать различные типы изображений с веб-сайта с помощью Java. С помощью Aspose.HTML for Java вы можете легко создать инструмент, который анализирует HTML-страницу, определяет источники изображений и загружает их. Это мощное решение для тех, кому нужно собирать изображения для анализа, архивирования или создания контента – без лишних хлопот, связанных с выполнением этой работы вручную.

Извлечение изображений с веб-сайта

Большинство изображений в HTML-документе представлено с помощью элемента <img>. Следующий фрагмент кода демонстрирует, как использовать Aspose.HTML for Java для поиска изображений, указанных этим элементом. Итак, чтобы загрузить изображения с веб-сайта, необходимо выполнить несколько следующих шагов:

  1. Используйте конструктор HTMLDocument(Url) для создания экземпляра HTMLDocument, передав ему URL веб-страницы, которую вы хотите обработать.
  2. Вызовите метод getElementsByTagName(“img”), чтобы получить все <img> элементы из документа. Метод возвращает коллекцию элементов <img>, присутствующих на странице.
  3. Пройдитесь по элементам <img> и используйте метод getAttribute(“src”), чтобы получить значение атрибута src каждого изображения. Каждый src добавляется в набор urls.
  4. Используйте класс Url вместе со свойством BaseURI документа для преобразования относительных путей к изображениям в абсолютные URL.
  5. Для каждого абсолютного URL-адреса изображения создайте запрос с помощью конструктора RequestMessage(url) и отправьте его с помощью document.getContext().getNetwork().send(request). При этом возвращается ResponseMessage.
  6. Если ответ свидетельствует об успехе, извлеките данные изображения с помощью response.getContent().readAsByteArray() и сохраните их в локальной файловой системе с помощью FileHelper.writeAllBytes().
 1// Extract images from website using Java
 2
 3// Open a document you want to download images from
 4final HTMLDocument document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");
 5
 6// Collect all <img> elements
 7HTMLCollection images = document.getElementsByTagName("img");
 8
 9// Create a distinct collection of relative image URLs
10Iterator<Element> iterator = images.iterator();
11java.util.Set<String> urls = new HashSet<>();
12for (Element e : images) {
13    urls.add(e.getAttribute("src"));
14}
15
16// Create absolute image URLs
17java.util.List<Url> absUrls = urls.stream()
18        .map(src -> new Url(src, document.getBaseURI()))
19        .collect(Collectors.toList());
20
21// foreach to while statements conversion
22for (Url url : absUrls) {
23    // Create an image request message
24    final RequestMessage request = new RequestMessage(url);
25
26    // Extract image
27    final ResponseMessage response = document.getContext().getNetwork().send(request);
28
29    // Check whether a response is successful
30    if (response.isSuccess()) {
31        String[] split = url.getPathname().split("/");
32        String path = split[split.length - 1];
33
34        // Save file to a local file system
35        FileHelper.writeAllBytes($o(path), response.getContent().readAsByteArray());
36    }
37}

Это простое и эффективное решение позволяет автоматизировать процесс извлечения изображений, экономя ваше драгоценное время.

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

Извлечение иконок с веб-сайта

Иконки в HTML-документах обычно задаются с помощью элементов <link> с атрибутом rel="icon". Чтобы извлечь иконки с веб-сайта с помощью Aspose.HTML for Java, выполните следующие действия:

  1. Загрузите веб-страницу с помощью конструктора HTMLDocument(Url), передав в него URL-адрес сайта, который вы хотите проанализировать.
  2. Используйте метод getElementsByTagName(“link”), чтобы собрать все <link> элементы из документа.
  3. Отфильтруйте результаты, чтобы включить только элементы, у которых атрибут rel имеет значение "icon", так как они определяют ссылки-значки.
  4. Извлеките относительные URL, вызвав getAttribute(“href”) для каждого отфильтрованного элемента <link>.
  5. Создайте абсолютные URL-адреса иконок, используя класс Url и метод getBaseURI() из HTMLDocument.
  6. Отправьте запрос для каждой иконки с помощью класса RequestMessage и метода document.getContext().getNetwork().send().
  7. Проверьте ответ и, если он успешен, сохраните иконку локально с помощью метода FileHelper.writeAllBytes(). В результате все иконки веб-сайта, на которые есть ссылки в HTML, будут загружены и сохранены в вашей локальной файловой системе.
 1// Download icons from website using Java
 2
 3// Open a document you want to download icons from
 4final HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
 5
 6// Collect all <link> elements
 7HTMLCollection links = document.getElementsByTagName("link");
 8
 9// Leave only "icon" elements
10java.util.Set<Element> icons = new HashSet<>();
11for (Element link : links) {
12    if ("icon".equals(link.getAttribute("rel"))) {
13        icons.add(link);
14    }
15}
16
17// Create a distinct collection of relative icon URLs
18java.util.Set<String> urls = new HashSet<>();
19for (Element icon : icons) {
20    urls.add(icon.getAttribute("href"));
21}
22
23// Create absolute image URLs
24java.util.List<Url> absUrls = urls.stream()
25        .map(src -> new Url(src, document.getBaseURI()))
26        .collect(Collectors.toList());
27
28// foreach to while statements conversion
29for (Url url : absUrls) {
30    // Create a downloading request
31    final RequestMessage request = new RequestMessage(url);
32
33    // Extract icon
34    final ResponseMessage response = document.getContext().getNetwork().send(request);
35
36    // Check whether a response is successful
37    if (response.isSuccess()) {
38        String[] split = url.getPathname().split("/");
39        String path = split[split.length - 1];
40
41        // Save file to a local file system
42        FileHelper.writeAllBytes($o(path), response.getContent().readAsByteArray());
43    }
44}

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

Aspose.HTML предоставляет набор бесплатных онлайн Веб-приложений HTML, включая конвертеры, слияния, SEO-инструменты, генераторы HTML-кода, утилиты URL и многое другое. Эти инструменты работают в любой операционной системе и не требуют установки дополнительного программного обеспечения. Если вам нужно конвертировать или объединить файлы, извлечь веб-данные, сгенерировать HTML-код или проанализировать страницы на предмет SEO, вы можете сделать все это прямо в Интернете. Упростите свои повседневные задачи и повысьте производительность с помощью наших простых в использовании веб-приложений HTML – в любое время и в любом месте.

Текст “Веб-приложения HTML”

Close
Loading

Analyzing your prompt, please hold on...

An error occurred while retrieving the results. Please refresh the page and try again.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.