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

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

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

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

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

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

Вы можете использовать эти примеры 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.