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

  1. Use o construtor HTMLDocument() para inicializar um documento HTML.
  2. Use o método GetElementsByTagName("img") para coletar todos os elementos <img>. O método retorna uma lista dos elementos <img> do documento HTML.
  3. 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 atributo src de cada elemento <img> .
  4. Crie URLs de imagem absolutas usando a classe Url e a propriedade BaseURI da classe HTMLDocument.
  5. Para cada URL absoluta, crie uma solicitação usando o construtor RequestMessage(url) .
  6. Use o método Context.Network.Send(request) do documento para enviar a solicitação. A resposta é verificada para garantir que foi bem-sucedida.
  7. Se a resposta for bem-sucedida, use o método File.WriteAllBytes() para salvar cada imagem em um arquivo local.
  8. 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!