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 for .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 for .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 for .NET
Install-Package Aspose.HTML
Extraer imágenes de HTML usando C#
Usando la biblioteca de clases Aspose.HTML for .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
- Utilice el constructor HTMLDocument() para inicializar un documento HTML.
- 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. - 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 atributosrc
de cada elemento<img>
. - Cree URL de imágenes absolutas utilizando la clase
Url
y la propiedad
BaseURI
de la claseHTMLDocument
. - Para cada URL absoluta, cree una solicitud utilizando el constructor
RequestMessage(
url
) . - Utilice el método
Context.Network.Send(request)
del documento para enviar la solicitud. La respuesta se verifica para garantizar que haya sido exitosa. - Si la respuesta fue exitosa, use el método
File.WriteAllBytes()
para guardar cada imagen en un archivo local. - 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 for .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 for .NET para analizar y manipular documentos basados en HTML. ¡Claro, seguro y sencillo!