Как извлечь изображение из 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
- Используйте конструктор HTMLDocument() для инициализации HTML-документа.
- Используйте метод
GetElementsByTagName(
"img"
) для сбора всех элементов<img>
. Метод возвращает список элементов<img>
HTML-документа. - Используйте метод
Select()
для создания отдельной коллекции относительных URL-адресов изображений и метод GetAttribute("src"
) для извлечения атрибутаsrc
каждого элемента<img>
. - Создайте абсолютные URL-адреса изображений, используя класс
Url
и свойство
BaseURI
класса HTMLDocument. - Для каждого абсолютного URL создайте запрос с помощью конструктора
RequestMessage(
url
) . - Используйте метод
Context.Network.Send(request)
для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным. - Если ответ был успешным, используйте метод
File.WriteAllBytes()
, чтобы сохранить каждое изображение в локальный файл. - В фрагменте кода мы проверяем, имеет ли изображение формат кодировки Base64, проверяя протокол URL-адреса, и, если это правда, устанавливаем имя и расширение для изображения.
Aspose.HTML для .NET – это расширенная библиотека анализа HTML. Можно создавать, редактировать, перемещаться по узлам, извлекать данные, объединять и конвертировать файлы HTML, XHTML, MD, EPUB и MHTML в PDF, DOCX, изображения и другие популярные форматы. Более подробную информацию об установке библиотеки C# и системных требованиях можно найти в Документации Aspose.HTML .
Другие поддерживаемые функции библиотеки C#
Используйте библиотеку Aspose.HTML for .NET для анализа и управления документами на основе HTML. Понятно, безопасно и просто!