Extrair SVG de sites de forma programática

A capacidade de extrair imagens de HTML é importante para várias aplicações, como web scraping e análise de conteúdo. O Aspose.HTML for Java é uma biblioteca robusta que simplifica esse processo, oferecendo aos desenvolvedores um conjunto de ferramentas para navegar e coletar informações de documentos HTML sem problemas. Vamos explorar como extrair imagens SVG externas de um sítio Web.


Extrair SVGs de HTML usando Java

Com a biblioteca Aspose.HTML for Java, é possível criar rapidamente seu próprio aplicativo usando um conjunto robusto de ferramentas para analisar e extrair dados de documentos HTML. O exemplo abaixo mostra como extrair todos os SVGs externos de um documento HTML com apenas algumas linhas de código Java.


Código Java para extrair SVG de um site

// 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());
    }
}



Passos para extrair SVGs de HTML

  1. Utilize o construtor HTMLDocument(Url) para criar uma instância da classe HTMLDocument e passe o URL do sítio Web do qual pretende extrair imagens SVG externas.
  2. Utilizar o método getElementsByTagName("img") para recolher todos os elementos <img>.
  3. Extrair o atributo src de cada elemento de imagem utilizando o método getAttribute("src") e criar uma coleção distinta de URLs de imagens relativas.
  4. Filtra apenas URLs de imagens SVG, verificando se cada URL termina com .svg, e adiciona essas URLs a uma nova lista.
  5. Criar URLs de imagens absolutas utilizando a classe Url e a propriedade BaseURI da classe HTMLDocument.
  6. Para cada URL absoluto, crie uma requisição utilizando o construtor RequestMessage(url) . Envie cada requisição e verifique se a resposta foi bem sucedida.
  7. Se a resposta foi bem sucedida, utilize o FileHelper.writeAllBytes() para salvar o conteúdo SVG no sistema de arquivos local.

Com Aspose.HTML for Java, é possível criar facilmente uma ferramenta que analisa uma página web, identifica fontes de imagens SVG e faz o download de SVGs. É uma solução poderosa para aqueles que precisam coletar SVGs para análise, arquivamento ou criação de conteúdo – sem o incômodo de fazer isso manualmente. Para saber mais sobre como extrair programaticamente diferentes tipos (em linha e externos) de SVGs de um sítio Web utilizando Java, consulte o artigo da documentação Extrair SVG de um sítio Web em Java .

Nota: É importante respeitar as leis de direitos de autor e obter as devidas autorizações ou licenças antes de utilizar imagens guardadas para fins comerciais. Não apoiamos a extração e utilização de ficheiros de outras pessoas para fins comerciais sem o seu consentimento.




Introdução à biblioteca de analisador de HTML Java

A API HTML é uma biblioteca avançada de web scraping e análise de HTML. Pode-se criar, editar, navegar pelos nós, extrair dados e converter arquivos HTML, XHTML e MHTML em PDF, Imagens e outros formatos. Além disso, ele também lida com CSS, HTML Canvas, SVG, XPath e JavaScript pronto para uso para estender as tarefas de manipulação. É uma API independente e não requer nenhuma instalação de software.
Você pode baixar sua versão mais recente diretamente do Aspose Maven Repository e instalá-lo em seu projeto baseado em Maven adicionando as seguintes configurações ao pom.xml.


Repositório

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

Dependência

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

Outras funcionalidades suportadas

Use a biblioteca Aspose.HTML for Java para analisar e manipular documentos baseados em HTML. Claro, seguro e simples!