Extraiga SVG del sitio web en C#

¿Alguna vez se ha encontrado en una situación en la que deseaba guardar o descargar imágenes SVG desde una página web o desde una URL activa? Scalable Vector Graphics (SVG) es un formato de imagen popular que se utiliza en páginas web. Las imágenes SVG están basadas en vectores, lo que significa que están formadas por objetos matemáticos que se pueden escalar a cualquier tamaño sin perder calidad. Esto los convierte en un formato versátil y eficiente para almacenar y mostrar imágenes. En esta publicación de blog, discutiremos cómo extraer SVG de un sitio web en C#.

Este artículo cubre los siguientes temas:

  1. API de C# para extraer SVG del sitio web
  2. Extraer SVG del sitio web
  3. Descargar imágenes SVG externas del sitio web
  4. Recursos de aprendizaje gratuitos

API de C# para extraer SVG del sitio web

Usaremos Aspose.HTML for .NET para extraer SVG de sitios web. Permite a los desarrolladores manipular y procesar documentos HTML. Se puede utilizar para automatizar la manipulación, conversión o análisis de documentos HTML dentro de una aplicación .NET. Los desarrolladores pueden ahorrar tiempo y esfuerzo implementando una solución lista para usar para manejar tareas relacionadas con HTML mediante programación. También permite la conversión de páginas web y documentos HTML a formatos compatibles sin ningún software externo.

Por favor descargue la DLL de la API o instálela usando NuGet.

PM> Install-Package Aspose.Html

Extraiga SVG del sitio web en C#

Podemos extraer todas las imágenes SVG que están incrustadas usando el <svg> elemento siguiendo los pasos a continuación:

  1. Cargue una página web usando la clase HTMLDocument.
  2. Lea todas las imágenes SVG en línea utilizando el método GetElementsByTagName().
  3. Finalmente, recorra todas las imágenes y guárdelas en un sistema de archivos local.

El siguiente ejemplo de código muestra cómo extraer SVG de un sitio web en C#.

// El siguiente ejemplo de código demuestra cómo extraer SVG de un sitio web en C#.
using Aspose.Html;

string OutputDir = "C:\\Files\\Internal\\";

// Abra un documento del que desee extraer imágenes SVG en línea
using var document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");

// Recoge todas las imágenes SVG en línea
var images = document.GetElementsByTagName("svg");

for (var i = 0; i < images.Length; i++)
{
    // Guarde cada imagen SVG en un sistema de archivos local
    File.WriteAllText(Path.Combine(OutputDir, $"{i}.svg"), images[i].OuterHTML);
}
Extraiga SVG del sitio web en C#

Extraiga SVG del sitio web en C#

Descargue imágenes SVG externas desde el sitio web en C#

Podemos extraer todas las imágenes SVG que están almacenadas fuera de un documento HTML y cargadas en el documento siguiendo los pasos a continuación:

  1. Cargue una página web usando la clase HTMLDocument.
  2. Lea todas las imágenes SVG en línea utilizando el método GetElementsByTagName().
  3. Finalmente, recorra todas las imágenes y guárdelas en un sistema de archivos local.

El siguiente ejemplo de código muestra cómo extraer SVG incrustado externamente de un sitio web en C#.

using Aspose.Html;
using Aspose.Html.Net;

// Directorio de archivos
string OutputDir = "C:\\Files\\";

// Abra el documento del que desea extraer archivos SVG externos
using var document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");

// Recoge todos los elementos de la imagen.
var images = document.GetElementsByTagName("img");

// Cree una colección distinta de URL de imágenes relativas
var urls = images.Select(element => element.GetAttribute("src")).Distinct();

// Filtrar imágenes que no sean SVG
var svgUrls = urls.Where(url => url.EndsWith(".svg"));

// Crear URL de imágenes SVG absolutas
var absUrls = svgUrls.Select(src => new Url(src, document.BaseURI));

foreach (var url in absUrls)
{
    // Crear una solicitud de extracción
    using var request = new RequestMessage(url);

    // Extraer SVG
    using var response = document.Context.Network.Send(request);

    // Compruebe si la respuesta es exitosa
    if (response.IsSuccess)
    {
        // Guarde la imagen SVG en el sistema de archivos local
        File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
    }
}

Obtenga una licencia gratuita

Puede obtener una licencia temporal gratuita para probar Aspose.HTML for .NET sin limitaciones de evaluación.

Extraer SVG del sitio web – Recursos de aprendizaje

Puede obtener más información sobre cómo extraer SVG de sitios web y explorar otras funciones de la biblioteca utilizando los recursos a continuación:

Conclusión

En este artículo, aprendimos cómo extraer SVG de sitios web en C#. La capacidad de extraer SVG de sitios web o páginas web aporta una nueva dimensión a la creatividad digital. Ya sea para archivar gráficos inspiradores, analizar tendencias de diseño o mejorar sus propios proyectos, los pasos descritos en este artículo muestran cómo el proceso es relativamente simple y requiere unas pocas líneas de código. En caso de cualquier ambigüedad, no dude en contactarnos en nuestro foro de soporte gratuito.

Ver también