Программное извлечение SVG с веб-сайтов

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


Извлечение SVG из HTML с помощью Java

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


Java-код для извлечения SVG с веб-сайта

// Open a document you want to download external SVGs from
final HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net/");

// Collect all <img> elements
HTMLCollection images = document.getElementsByTagName("img");

// Create a distinct collection of relative image URLs
java.util.Set<String> urls = new HashSet<>();
for (Element element : images) {
    urls.add(element.getAttribute("src"));
}

// Filter out non SVG images
java.util.List<String> svgUrls = new ArrayList<>();
for (String url : urls) {
    if (url.endsWith(".svg")) {
        svgUrls.add(url);
    }
}
// Create absolute SVG image URLs
java.util.List<Url> absUrls = svgUrls.stream()
    .map(src -> new Url(src, document.getBaseURI()))
    .collect(Collectors.toList());

for (Url url : absUrls) {
    // Create a downloading request
    final RequestMessage request = new RequestMessage(url);

    // Download SVG image
    final ResponseMessage response = document.getContext().getNetwork().send(request);

    // Check whether response is successful
    if (response.isSuccess()) {
        String[] split = url.getPathname().split("/");
        String path = split[split.length - 1];

        // Save file to a local file system
        FileHelper.writeAllBytes(path, response.getContent().readAsByteArray());
    }
}



Шаги по извлечению SVG из HTML

  1. Используйте конструктор HTMLDocument(Url) для создания экземпляра класса HTMLDocument и передайте URL сайта, с которого вы хотите извлечь внешние SVG-изображения.
  2. Используйте метод getElementsByTagName("img") , чтобы собрать все элементы <img>.
  3. Извлеките атрибут src из каждого элемента изображения с помощью метода getAttribute("src") и создайте отдельную коллекцию относительных URL-адресов изображений.
  4. Отфильтруйте только URL-адреса SVG-изображений, проверив, заканчивается ли каждый URL-адрес на .svg, и добавьте их в новый список.
  5. Создайте абсолютные URL-адреса изображений с помощью класса Url и свойства BaseURI класса HTMLDocument.
  6. Для каждого абсолютного URL создайте запрос с помощью конструктора RequestMessage(url) . Отправьте каждый запрос и проверьте ответ на успех.
  7. Если ответ был успешным, используйте FileHelper.writeAllBytes() для сохранения содержимого SVG в локальной файловой системе.

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

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




Начало работы с Java HTML Parser Library

HTML API – это расширенная библиотека веб-скрапинга и синтаксического анализа HTML. Можно создавать, редактировать, перемещаться по узлам, извлекать данные и преобразовывать файлы HTML, XHTML и MHTML в PDF, изображения и другие форматы. Кроме того, Java library также обрабатывает CSS, HTML Canvas, SVG, XPath и JavaScript из коробки, чтобы расширить задачи манипулирования. Это автономный API, не требующий установки программного обеспечения.
Вы можете загрузить его последнюю версию непосредственно из Aspose Maven Repository и установить его в свой проект на основе Maven, добавив следующие конфигурации в файл pom.xml.


Репозиторий

<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>

Зависимость

<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-html</artifactId>
<version>version of aspose-html API</version>
<classifier>jdk17</classifier>
</dependency>

Другие поддерживаемые функции

Используйте библиотеку Aspose.HTML for Java для анализа и работы с документами на основе HTML. Понятно, безопасно и просто!