Cómo extraer imágenes de HTML

La capacidad de extraer imágenes de HTML es importante para diversas aplicaciones, como el web scraping y el análisis de contenido. Aspose.HTML para .NET es una biblioteca sólida que simplifica este proceso al ofrecer a los desarrolladores un conjunto de herramientas para navegar y recopilar información de documentos HTML sin problemas. Exploremos cómo extraer imágenes de documentos HTML.

Primero, asegúrese de tener Aspose.HTML para .NET instalado en su proyecto. El proceso de instalación de esta biblioteca es bastante sencillo. Abra el administrador de paquetes NuGet, busque Aspose.HTML e instálelo. También puede utilizar el siguiente comando desde la Consola del Administrador de paquetes:


Instalar Aspose.HTML para .NET

Install-Package Aspose.HTML



Extraer imágenes de HTML usando C#

Usando la biblioteca de clases Aspose.HTML para .NET , puede crear fácilmente su propia aplicación, ya que nuestra API proporciona un potente conjunto de herramientas para analizar y recopilar información de documentos HTML. Si desea utilizar funciones de extracción de datos HTML en su producto o extraer datos de HTML mediante programación, consulte el ejemplo de código a continuación. Ya sea que esté creando raspadores web o analizadores de contenido, Aspose.HTML hace que la extracción de imágenes sea un proceso intuitivo. Puede descargar todas las imágenes de un documento HTML con unas pocas líneas de código C#:


Código C# para extraer imágenes de HTML

using Aspose.Html;
using Aspose.Html.Net;
using System.Linq;
using System.IO;
...

    // Prepare a path to a source HTML file
    string documentPath = Path.Combine(DataDir, "images-from-html.html");

    // Create an instance of an HTML document
    using (var document = new HTMLDocument(documentPath))
    {
        // Collect all <img> elements
        var images = document.GetElementsByTagName("img");

        // Create a distinct collection of relative image URLs
        var urls = images.Select(element => element.GetAttribute("src")).Distinct();

        // Create absolute image URLs
        var absUrls = urls.Select(src => new Url(src, document.BaseURI));

        foreach (var url in absUrls)
        {
            // Create an image request message
            using var request = new RequestMessage(url);

            // Download image
            using var response = document.Context.Network.Send(request);

            var imgName = url.Pathname.Split('/').Last();

            //Check the image in base64 encoding
            if (url.Protocol == "data:" && response.Headers.ContentType.MediaType.Type == "image")
            {
                // Get the image type and set to extension
                imgName = "img1." + response.Headers.ContentType.MediaType.SubType;
            }

            // Check whether a response is successful
            if (response.IsSuccess)
            {
                // Save image to a local file system
                File.WriteAllBytes(Path.Combine(OutputDir, imgName), response.Content.ReadAsByteArray());
            }
        }
    }



Pasos para extraer imágenes de HTML

  1. Utilice el constructor HTMLDocument() para inicializar un documento HTML.
  2. Utilice el método GetElementsByTagName("img") para recopilar todos los elementos <img>. El método devuelve una lista de los elementos <img> del documento HTML.
  3. Utilice el método Select() para crear una colección distinta de URL de imágenes relativas y el método GetAttribute("src") para extraer el atributo src de cada elemento <img>.
  4. Cree URL de imágenes absolutas utilizando la clase Url y la propiedad BaseURI de la clase HTMLDocument.
  5. Para cada URL absoluta, cree una solicitud utilizando el constructor RequestMessage(url) .
  6. Utilice el método Context.Network.Send(request) del documento para enviar la solicitud. La respuesta se verifica para garantizar que haya sido exitosa.
  7. Si la respuesta fue exitosa, use el método File.WriteAllBytes() para guardar cada imagen en un archivo local.
  8. En el fragmento de código, verificamos si la imagen está en formato codificado Base64 examinando el protocolo de la URL y, si es verdadero, configuramos el nombre y la extensión de la imagen.

Aspose.HTML para .NET es una biblioteca de análisis HTML avanzada. Se pueden crear, editar, navegar a través de nodos, extraer datos, fusionar y convertir archivos HTML, XHTML, MD, EPUB y MHTML a PDF, DOCX, imágenes y otros formatos populares. Además, también maneja CSS, HTML Canvas, SVG, XPath y JavaScript listos para usar para ampliar las tareas de manipulación. Para obtener más detalles sobre la instalación de la biblioteca C# y los requisitos del sistema, consulte la Documentación Aspose.HTML .

Otras características de la biblioteca C# compatibles

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