Как извлечь изображение из HTML

Возможность извлекать изображения из HTML важна для различных приложений, таких как парсинг веб-страниц и анализ контента. Aspose.HTML for .NET – это надежная библиотека, которая упрощает этот процесс, предлагая разработчикам набор инструментов для беспрепятственной навигации и сбора информации из документов HTML. Давайте рассмотрим, как извлекать изображения из HTML-документов.

Сначала убедитесь, что в вашем проекте установлена Aspose.HTML for .NET. Процесс установки этой библиотеки довольно прост. Вы можете инсталлировать её через консоль диспетчера пакетов NuGet, используя следующую команду:


Установите Aspose.HTML для .NET.

Install-Package Aspose.HTML



Извлечение изображений из HTML с помощью C#

Используя библиотеку классов Aspose.HTML for .NET , вы можете легко создать собственное приложение, поскольку наш API предоставляет мощный набор инструментов для анализа и сбора информации из HTML-документов. Если вы хотите использовать функции анализ данных HTML в своем продукте или программно извлекать данные из HTML, рассмотрите пример кода ниже. Независимо от того, создаете ли вы веб-скраперы или анализаторы контента, Aspose.HTML делает извлечение изображений интуитивно понятным процессом. Вы можете загрузить все изображения из HTML-документа с помощью нескольких строк кода C#:


Код C# для извлечения изображений из 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());
            }
        }
    }



Шаги по извлечению изображений из HTML

  1. Используйте конструктор HTMLDocument() для инициализации HTML-документа.
  2. Используйте метод GetElementsByTagName("img") для сбора всех элементов <img>. Метод возвращает список элементов <img> HTML-документа.
  3. Используйте метод Select() для создания отдельной коллекции относительных URL-адресов изображений и метод GetAttribute("src") для извлечения атрибута src каждого элемента <img>.
  4. Создайте абсолютные URL-адреса изображений, используя класс Url и свойство BaseURI класса HTMLDocument.
  5. Для каждого абсолютного URL создайте запрос с помощью конструктора RequestMessage(url) .
  6. Используйте метод Context.Network.Send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
  7. Если ответ был успешным, используйте метод File.WriteAllBytes(), чтобы сохранить каждое изображение в локальный файл.
  8. В фрагменте кода мы проверяем, имеет ли изображение формат кодировки Base64, проверяя протокол URL-адреса, и, если это правда, устанавливаем имя и расширение для изображения.

Aspose.HTML для .NET – это расширенная библиотека анализа HTML. Можно создавать, редактировать, перемещаться по узлам, извлекать данные, объединять и конвертировать файлы HTML, XHTML, MD, EPUB и MHTML в PDF, DOCX, изображения и другие популярные форматы. Более подробную информацию об установке библиотеки C# и системных требованиях можно найти в Документации Aspose.HTML .