Извлечь изображения с веб-сайта – примеры C#
Предположим, вы веб-разработчик, графический дизайнер, исследователь, журналист или студент, одним словом, человек, работающий над собственным проектом. В этом случае вам, очевидно, понадобятся изображения для вашего проекта в процессе разработки. Чтобы скачать изображения по ссылке вручную, вы потратите очень много времени. Вам нужно будет скопировать URL-адрес каждого изображения, а затем загрузить изображение, но вы можете использовать библиотеку Aspose.HTML для .NET для извлечения изображений с веб-сайта программно.
В этой статье мы рассмотрим, как извлекать с веб-сайта различные типы изображений с помощью Aspose.HTML для .NET API. Использование нашей библиотеки C# поможет вам найти и сохранить изображение по ссылке на него. Это лучше, чем копаться и искать вручную. Давайте попробуем! Извлекайте изображения с сайта программно!
Извлечь изображения с веб-сайта – код C#
Большинство изображений в HTML-документе представлены с помощью элемента <img>
. Вот пример того, как использовать Aspose.HTML для извлечения изображений с веб-сайта, указанных в <img>
элементе. Итак, чтобы скачать изображения по ссылке, вам нужно сделать несколько следующих шагов:
- Используйте конструктор
HTMLDocument(
Url
) для создания экземпляра классаHTMLDocument
и передайте ему URL-адрес веб-сайта, с которого вы хотите загрузить изображения. - Используйте метод
GetElementsByTagName(“img”) для сбора всех элементов
<img>
. Метод возвращает список элементов<img>
HTML-документа. - Используйте метод
Select()
для создания отдельной коллекции относительных URL-адресов изображений и GetAttribute(“src”) для извлечения атрибутаsrc
каждого элемента<img>
. - Создайте абсолютные URL-адреса изображений, используя класс
Url и
BaseURI класса
HTMLDocument
. - Для каждого абсолютного URL-адреса создайте запрос с помощью конструктора RequestMessage(url).
- Используйте метод документа Context.Network.Send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
- Наконец, если ответ был успешным, используйте метод
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:
- Используйте конструктор
HTMLDocument(
Url
) для создания экземпляра классаHTMLDocument
и передайте ему URL-адрес веб-сайта, с которого вы хотите загрузить значки. - Используйте метод
GetElementsByTagName(
"link"
) для сбора всех элементов<link>
. - Чтобы отфильтровать изображения без значков, используйте метод
Where()
, который фильтрует коллекцию на основе выраженияlink => link.GetAttribute("rel") == "icon"
. Таким образом, коллекцияicons
будет содержать толькоlinks
с атрибутом rel со значениемicon
. - Используйте метод
Select()
для создания отдельной коллекции относительных URL-адресов значков и GetAttribute("href"
) для извлечения атрибутаhref
каждого элемента<link>
. - Создайте абсолютные URL-адреса значков, используя класс
Url и
BaseURI класса
HTMLDocument
. - Затем для каждого абсолютного URL создайте запрос с помощью класса RequestMessage.
- Используйте метод документа
Context.Network.Send(
request
) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным. - Если ответ был успешным, используйте метод
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, чтобы выполнять повседневные дела и сделать свой рабочий процесс безупречным!