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