Como extrair imagem de HTML
A capacidade de extrair imagens de HTML é importante para diversas aplicações, como web scraping e análise de conteúdo. Aspose.HTML for .NET é uma biblioteca robusta que simplifica esse processo, oferecendo aos desenvolvedores um conjunto de ferramentas para navegar e coletar informações de documentos HTML de maneira integrada. Vamos explorar como extrair imagens de documentos HTML.
Primeiro, certifique-se de ter Aspose.HTML for .NET instalado em seu projeto. O processo de instalação desta biblioteca é bastante simples. Abra o gerenciador de pacotes NuGet, procure Aspose.HTML e instale. Você também pode usar o seguinte comando do Console do Gerenciador de Pacotes:
Instale Aspose.HTML for .NET
Install-Package Aspose.HTML
Extraia imagens de HTML usando C#
Usando a biblioteca de classes Aspose.HTML for .NET , você pode criar facilmente seu próprio aplicativo, já que nossa API fornece um poderoso conjunto de ferramentas para analisar e coletar informações de documentos HTML. Se você deseja usar recursos de extração de dados HTML em seu produto ou extrair dados de HTML de forma programática, consulte o exemplo de código abaixo. Esteja você construindo web scrapers ou analisadores de conteúdo, o Aspose.HTML torna a extração de imagens um processo intuitivo. Você pode baixar todas as imagens de um documento HTML com algumas linhas de código C#:
Código C# para extrair imagens 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());
}
}
}
Etapas para extrair imagens de HTML
- Use o construtor HTMLDocument() para inicializar um documento HTML.
- Use o método
GetElementsByTagName(
"img"
) para coletar todos os elementos<img>
. O método retorna uma lista dos elementos<img>
do documento HTML. - Utilize o método
Select()
para criar uma coleção distinta de URLs de imagens relativas e o método GetAttribute("src"
) para extrair o atributosrc
de cada elemento<img>
. - Crie URLs de imagem absolutas usando a classe
Url
e a propriedade
BaseURI
da classeHTMLDocument
. - Para cada URL absoluta, crie uma solicitação usando o construtor
RequestMessage(
url
) . - Use o método
Context.Network.Send(request)
do documento para enviar a solicitação. A resposta é verificada para garantir que foi bem-sucedida. - Se a resposta for bem-sucedida, use o método
File.WriteAllBytes()
para salvar cada imagem em um arquivo local. - No trecho de código, verificamos se a imagem está no formato codificado em Base64 examinando o protocolo da URL e, se verdadeiro, definimos o nome e a extensão da imagem.
Aspose.HTML for .NET é uma biblioteca avançada de análise de HTML. É possível criar, editar, navegar pelos nós, extrair dados, mesclar e converter arquivos HTML, XHTML, MD, EPUB e MHTML em PDF, DOCX, imagens e outros formatos populares. Além disso, ele também lida com CSS, HTML Canvas, SVG, XPath e JavaScript prontos para uso para estender as tarefas de manipulação. Para obter mais detalhes sobre a instalação da biblioteca C# e requisitos do sistema, consulte Documentação Aspose.HTML .
Outros recursos da biblioteca C# com suporte
Use a biblioteca Aspose.HTML for .NET para analisar e manipular documentos baseados em HTML. Claro, seguro e simples!