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
- 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. - 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. - Recorre los elementos
<img>
recogidos y utiliza el métodoget_attribute("src")
para extraer el atributosrc
de cada elemento. Almacena estos valores en un conjunto para eliminar duplicados. - Filtre las URL extraídas comprobando si terminan con la extensión “.svg” para aislar sólo las imágenes SVG externas.
- Utilice la clase
Url
y labase_uri
del documento para crear direcciones URL absolutas de imágenes SVG. - Cree una instancia
RequestMessage
para cada URL SVG absoluta con el fin de preparar una solicitud HTTP para recuperar la imagen. - Envía la petición y comprueba la propiedad
is_success
para asegurarte de que la respuesta ha sido correcta. - 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!