Cómo extraer SVG de un sitio web

La capacidad de extraer imágenes de HTML es crucial para diversas aplicaciones, como el web scraping y el análisis de contenidos. Aspose.HTML for Python via .NET 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. Esta potente solución es ideal para cualquiera que necesite recopilar SVG para su análisis, archivo o creación de contenidos, eliminando la necesidad del trabajo manual. Exploremos cómo descargar imágenes SVG de páginas web.


Extraer SVG con Python

Las imágenes SVG en documentos HTML se presentan de dos formas: SVG en línea y SVG externo. El siguiente código Python demuestra cómo automatizar la extracción de imágenes SVG externas, archivos SVG almacenados por separado de HTML y referenciados mediante etiquetas <img>, desde una página web utilizando la biblioteca Aspose.HTML for Python via .NET:


Código Python para descargar SVG de una página web

import os
import aspose.html as ah
import aspose.html.net as ahnet

# Define the output directory
output_dir = "output/svg/"
os.makedirs(output_dir, exist_ok=True)

# Open the document you want to extract external SVGs from
document = ah.HTMLDocument("https://products.aspose.com/html/python-net/")

# Collect all <img> elements
images = document.get_elements_by_tag_name("img")

# Create a distinct collection of relative image URLs
urls = set(img.get_attribute("src") for img in images)

# Filter only SVG images
svg_urls = [url for url in urls if url.endswith(".svg")]

# Convert relative URLs to absolute using Url from aspose.html
abs_urls = [ah.Url(url, document.base_uri) for url in svg_urls]

for url in abs_urls:
    # Create a network request for the SVG
    request = ahnet.RequestMessage(url.href)

    # Send request to fetch the SVG
    response = document.context.network.send(request)

    # Check if request succeeded
    if response.is_success:
        # Determine local file path
        file_path = os.path.join(output_dir, os.path.basename(url.pathname))

        # Save SVG to a local file system
        with open(file_path, "wb") as f:
            f.write(response.content.read_as_byte_array())


Pasos para extraer SVG de un sitio web

  1. Utilice el constructor HTMLDocument(Url) para crear una instancia de la clase HTMLDocument y pásele la URL del sitio web del que desea extraer imágenes SVG externas.
  2. Utilice el método get_elements_by_tag_name("img") para recopilar todos los elementos <img> del documento HTML. Este método devuelve una lista de elementos de imagen incrustados en la página.
  3. Recorre los elementos <img> recogidos y utiliza el método get_attribute("src") para extraer el atributo src de cada elemento. Almacena estos valores en un conjunto para eliminar duplicados.
  4. Filtre las URL extraídas comprobando si terminan con la extensión “.svg” para aislar sólo las imágenes SVG externas.
  5. Utilice la clase Url y la base_uri del documento para crear direcciones URL absolutas de imágenes SVG.
  6. Cree una instancia RequestMessage para cada URL SVG absoluta con el fin de preparar una solicitud HTTP para recuperar la imagen.
  7. Envía la petición y comprueba la propiedad is_success para asegurarte de que la respuesta ha sido correcta.
  8. Utilice os.path.basename(url.pathname) para obtener el nombre de archivo de la URL SVG y, a continuación, guarde la imagen en el sistema de archivos local escribiendo el contenido binario en el directorio de salida.

Para obtener más información sobre cómo extraer mediante programación SVG en línea y externos de un sitio web, consulte el artículo de documentación Extracción de SVG de un sitio web en Python .

Nota: Respeta siempre las leyes de derechos de autor. Asegúrese de que dispone de los derechos, permisos o licencias correspondientes antes de utilizar las imágenes extraídas con fines comerciales. No respaldamos ni apoyamos el uso no autorizado de contenidos protegidos por derechos de autor.



Comience con la API de Python

Si desea analizar, manipular y administrar documentos HTML, instale nuestra API flexible y de alta velocidad Aspose.HTML for Python via .NET. pip es la forma más sencilla de descargar e instalar la biblioteca de Python. Para ello, ejecute el siguiente comando:

pip install aspose-html-net

Para obtener más detalles sobre la instalación de la biblioteca de Python y los requisitos del sistema, consulte la Documentación de Aspose.HTML

Otras funciones compatibles

Utilice la biblioteca Aspose.HTML for Python via .NET para analizar y manipular documentos basados en HTML. ¡Claro, seguro y sencillo!