Extraer SVG de sitios web mediante programación

La capacidad de extraer imágenes de HTML es importante para diversas aplicaciones, como el web scraping y el análisis de contenidos. Aspose.HTML for Java es una robusta biblioteca que simplifica este proceso ofreciendo a los desarrolladores un conjunto de herramientas para navegar y recopilar información de documentos HTML sin problemas. Exploremos cómo extraer imágenes SVG externas de un sitio web.


Extraer SVG de HTML usando Java

Con la biblioteca Aspose.HTML for Java, puede crear rápidamente su propia aplicación utilizando un sólido conjunto de herramientas para analizar y extraer datos de documentos HTML. El siguiente ejemplo muestra cómo extraer todos los SVG externos de un documento HTML con sólo unas pocas líneas de código Java.


Código Java para extraer SVG de un sitio web

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



Pasos para extraer SVG de HTML

  1. Utilice el constructor HTMLDocument(Url) para crear una instancia de la clase HTMLDocument y pase la URL del sitio web del que desea extraer imágenes SVG externas.
  2. Utilice el método getElementsByTagName("img") para recopilar todos los elementos <img>.
  3. Extrae el atributo src de cada elemento de imagen usando el método getAttribute("src") y crea una colección distinta de URLs relativas de imágenes.
  4. Filtrar sólo las URLs de imágenes SVG comprobando si cada URL termina en .svg, y añadirlas a una nueva lista.
  5. Crear URLs de imágenes absolutas utilizando la clase Url y la propiedad BaseURI de la clase HTMLDocument.
  6. Para cada URL absoluta, crea una petición utilizando el constructor RequestMessage(url) . Envía cada petición y comprueba si la respuesta es correcta.
  7. Si la respuesta es correcta, utilice FileHelper.writeAllBytes() para guardar el contenido SVG en el sistema de archivos local.

Con Aspose.HTML for Java, puede crear fácilmente una herramienta que analice una página web, identifique fuentes de imágenes SVG y descargue SVG. Se trata de una potente solución para quienes necesitan recopilar SVG para su análisis, archivo o creación de contenidos, sin la molestia de hacerlo manualmente. Para obtener más información sobre cómo extraer mediante programación distintos tipos (en línea y externos) de SVG de un sitio web utilizando Java, consulte el artículo de documentación Extraer SVG de sitio web usando Java .

Nota: Es importante respetar las leyes de derechos de autor y obtener los permisos o licencias adecuados antes de utilizar las imágenes guardadas con fines comerciales. No apoyamos la extracción y el uso de archivos de otras personas con fines comerciales sin su consentimiento.




Introducción a la biblioteca del analizador HTML de Java

HTML API es una biblioteca avanzada de web scraping y análisis de HTML. Uno puede crear, editar, navegar a través de los nodos, extraer datos y convertir archivos HTML, XHTML y MHTML a PDF, imágenes y otros formatos. Además, también maneja CSS, HTML Canvas, SVG, XPath y JavaScript listos para usar para extender las tareas de manipulación. Es una API independiente y no requiere la instalación de ningún software.
Puede descargar su última versión directamente desde Aspose Maven Repository e instalarla dentro de su proyecto basado en Maven agregando las siguientes configuraciones a pom.xml.


Repositorio

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

Dependencia

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

Otras funciones compatibles

Utilice la biblioteca Aspose.HTML for Java para analizar y manipular documentos basados en HTML. Claro, seguro y sencillo.