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
- 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. - Utilizar o método
getElementsByTagName(
"img"
) para recolher todos os elementos<img>
. - 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. - Filtra apenas URLs de imagens SVG, verificando se cada URL termina com
.svg
, e adiciona essas URLs a uma nova lista. - Criar URLs de imagens absolutas utilizando a classe
Url
e a propriedade
BaseURI
da classeHTMLDocument
. - 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. - 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!