Извлечь изображения с веб-сайта – примеры C#
Предположим, вы веб-разработчик, графический дизайнер, исследователь, журналист или студент, одним словом, человек, работающий над собственным проектом. В этом случае вам, очевидно, понадобятся изображения для вашего проекта в процессе разработки. Чтобы скачать изображения по ссылке вручную, вы потратите очень много времени. Вам нужно будет скопировать URL-адрес каждого изображения, а затем загрузить изображение, но вы можете использовать библиотеку Aspose.HTML for .NET для извлечения изображений с веб-сайта программно.
В этой статье мы рассмотрим, как извлекать с веб-сайта различные типы изображений с помощью Aspose.HTML for .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()
, чтобы сохранить каждое изображение в локальный файл.
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:
- Используйте конструктор
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()
для сохранения значков в локальный файл. В результате у вас будет коллекция иконок с веб-сайта в вашей локальной папке.
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, чтобы выполнять повседневные дела и сделать свой рабочий процесс безупречным!