Извлечь изображения с веб-сайта – примеры C#

Предположим, вы веб-разработчик, графический дизайнер, исследователь, журналист или студент, одним словом, человек, работающий над собственным проектом. В этом случае вам, очевидно, понадобятся изображения для вашего проекта в процессе разработки. Чтобы скачать изображения по ссылке вручную, вы потратите очень много времени. Вам нужно будет скопировать URL-адрес каждого изображения, а затем загрузить изображение, но вы можете использовать библиотеку Aspose.HTML для .NET для извлечения изображений с веб-сайта программно.

В этой статье мы рассмотрим, как извлекать с веб-сайта различные типы изображений с помощью Aspose.HTML для .NET API. Использование нашей библиотеки C# поможет вам найти и сохранить изображение по ссылке на него. Это лучше, чем копаться и искать вручную. Давайте попробуем! Извлекайте изображения с сайта программно!

Извлечь изображения с веб-сайта – код C#

Большинство изображений в HTML-документе представлены с помощью элемента <img>. Вот пример того, как использовать Aspose.HTML для извлечения изображений с веб-сайта, указанных в <img> элементе. Итак, чтобы скачать изображения по ссылке, вам нужно сделать несколько следующих шагов:

  1. Используйте конструктор HTMLDocument(Url) для создания экземпляра класса HTMLDocument и передайте ему URL-адрес веб-сайта, с которого вы хотите загрузить изображения.
  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(), чтобы сохранить каждое изображение в локальный файл.
 1using Aspose.Html;
 2using Aspose.Html.Net;
 3using System.IO;
 4using System.Linq;
 5...
 6    // Open a document you want to extract images from
 7    using var document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");
 8
 9    // Collect all <img> elements
10    var images = document.GetElementsByTagName("img");
11
12    // Create a distinct collection of relative image URLs
13    var urls = images.Select(element => element.GetAttribute("src")).Distinct();
14
15    // Create absolute image URLs
16    var absUrls = urls.Select(src => new Url(src, document.BaseURI));
17
18    foreach (var url in absUrls)
19    {
20        // Create an image request message
21        using var request = new RequestMessage(url);
22
23        // Extract image
24        using var response = document.Context.Network.Send(request);
25
26        // Check whether a response is successful
27        if (response.IsSuccess)
28        {
29            // Save image to a local file system
30            File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());                   
31        }
32    }

Примечание. Важно соблюдать законы об авторском праве и получать надлежащее разрешение или лицензию перед использованием сохраненных изображений в коммерческих целях. Мы не поддерживаем извлечение данных и использование файлов других людей в коммерческих целях без их разрешения.

Извлечь иконки с веб-сайта – код C#

Иконки – это разновидность изображений в документах HTML, которые указываются с помощью элементов <link> с атрибутом rel, установленным на icon. Давайте посмотрим, как загрузить иконки с веб-сайта с помощью библиотеки Aspose.HTML для .NET:

  1. Используйте конструктор HTMLDocument(Url) для создания экземпляра класса HTMLDocument и передайте ему URL-адрес веб-сайта, с которого вы хотите загрузить значки.
  2. Используйте метод GetElementsByTagName("link") для сбора всех элементов <link>.
  3. Чтобы отфильтровать изображения без значков, используйте метод Where(), который фильтрует коллекцию на основе выражения link => link.GetAttribute("rel") == "icon". Таким образом, коллекция icons будет содержать только links с атрибутом rel со значением icon.
  4. Используйте метод Select() для создания отдельной коллекции относительных URL-адресов значков и GetAttribute("href") для извлечения атрибута href каждого элемента <link>.
  5. Создайте абсолютные URL-адреса значков, используя класс Url и BaseURI класса HTMLDocument.
  6. Затем для каждого абсолютного URL создайте запрос с помощью класса RequestMessage.
  7. Используйте метод документа Context.Network.Send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
  8. Если ответ был успешным, используйте метод File.WriteAllBytes() для сохранения значков в локальный файл. В результате у вас будет коллекция иконок с веб-сайта в вашей локальной папке.
 1using Aspose.Html;
 2using Aspose.Html.Net;
 3using System.IO;
 4using System.Linq;
 5...
 6    // Open a document you want to extract icons from
 7    using var document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
 8
 9    // Collect all <link> elements
10    var links = document.GetElementsByTagName("link");
11
12    // Leave only "icon" elements
13    var icons = links.Where(link => link.GetAttribute("rel") == "icon");
14
15    // Create a distinct collection of relative icon URLs
16    var urls = icons.Select(icon => icon.GetAttribute("href")).Distinct();
17
18    // Create absolute icon URLs
19    var absUrls = urls.Select(src => new Url(src, document.BaseURI));
20
21    foreach (var url in absUrls)
22    {
23        // Create a extracting request
24        using var request = new RequestMessage(url);
25
26        // Extract icon
27        using var response = document.Context.Network.Send(request);
28
29        // Check whether a response is successful
30        if (response.IsSuccess)
31        {
32            // Save icon to a local file system
33            File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
34
35            Assert.True(File.Exists(Path.Combine(OutputDir, url.Pathname.Split('/').Last())));
36        }
37    }

Вы можете использовать эти примеры C# для автоматизации извлечения всех изображений с веб-сайта, что может быть полезно для таких задач, как архивирование, исследование, анализ веб-контента или любого другого приложения для личного использования. Кроме того, это отлично подходит для веб-дизайнеров и разработчиков, желающих получать изображения с сайтов, не углубляясь в исходный код.

Вы можете скачать полные примеры C# и файлы данных с GitHub.

Aspose.HTML предлагает бесплатные Веб-приложения HTML, которые представляют собой онлайн-коллекцию конвертеров, слияний, загрузчиков, инструментов SEO, генераторов HTML-кода, инструментов URL и многое другое. Приложения работают в любой операционной системе с веб-браузером и не требуют установки дополнительного программного обеспечения. Легко конвертируйте, объединяйте, кодируйте, генерируйте HTML-код, извлекайте данные из Интернета или анализируйте веб-страницы с точки зрения SEO, где бы вы ни находились. Используйте нашу коллекцию веб-приложений HTML, чтобы выполнять повседневные дела и сделать свой рабочий процесс безупречным!

Text “Баннер веб-приложений HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.