Извлечь изображения с веб-сайта на Python
В этой статье мы рассмотрим, как извлекать различные типы изображений с веб-сайтов с помощью Aspose.HTML for Python via .NET. Используя Python библиотеку, вы можете эффективно загружать изображения с веб-сайта без необходимости ручного поиска. Узнайте, как автоматизировать процесс извлечения изображений и с легкостью оптимизировать рабочий процесс. Давайте начнем извлекать изображения программно!
Извлечь изображения с веб-сайта
Большинство изображений в HTML-документе представлены с помощью элемента <img>
. Вот пример того, как использовать Aspose.HTML for Python via .NET для поиска изображений, указанных этим элементом. Итак, чтобы скачать изображения с сайта, вам необходимо сделать несколько следующих шагов:
- Инициализируйте объект HTMLDocument с помощью конструктора HTMLDocument(Url) и укажите URL-адрес веб-страницы, из которой вы хотите извлечь изображения.
- Вызовите метод
get_elements_by_tag_name(“img”) документа, чтобы получить все элементы
<img>
. Этот метод возвращает коллекцию всех элементов<img>
, найденных в HTML-документе. - Извлеките уникальные URL-адреса изображений, перебирая собранные элементы
<img>
и получая доступ к их атрибутуsrc
с помощью метода get_attribute(“src”). Сохраните эти URL-адреса в наборе, чтобы исключить дубликаты. - Создайте абсолютные URL-адреса изображений, используя класс Url и свойство base_uri класса HTMLDocument, чтобы гарантировать их правильный формат для запросов.
- Для каждого абсолютного URL-адреса изображения создайте объект RequestMessage и используйте его для отправки сетевого запроса на получение изображения.
- Используйте метод документа context.network.send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
- Проанализируйте URL-адрес изображения, чтобы получить имя файла, затем сохраните изображение в локальной файловой системе, записав содержимое изображения в файл в назначенном выходном каталоге.
1import os
2from aspose.html import *
3from aspose.html.net import *
4
5# Prepare the output directory
6output_dir = "output/"
7os.makedirs(output_dir, exist_ok=True)
8
9
10# Open a document you want to extract images from
11with HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/") as document:
12 # Collect all <img> elements
13 images = document.get_elements_by_tag_name("img")
14
15 # Create a distinct collection of relative image URLs
16 urls = set(element.get_attribute("src") for element in images)
17
18 # Create absolute image URLs
19 abs_urls = [Url(url, document.base_uri) for url in urls]
20
21 for url in abs_urls:
22 # Create an image request message
23 request = RequestMessage(url)
24
25 # Extract image
26 response = document.context.network.send(request)
27
28 # Check whether a response is successful
29 if response.is_success:
30 # Parse the URL to get the file name
31 file_name = os.path.basename(url.pathname)
32
33 # Save image to the local file system
34 with open(os.path.join(output_dir, file_name), 'wb') as file:
35 file.write(response.content.read_as_byte_array())
Примечание. Прежде чем использовать сохраненные изображения в коммерческих целях, необходимо соблюдать законы об авторских правах и получить соответствующее разрешение. Мы не поддерживаем извлечение данных и использование файлов других людей в коммерческих целях без их разрешения.
Извлечь значки (иконки)
Значки – это своего рода изображения в HTML-документах, которые указываются с помощью элементов <link>
с атрибутом rel
, установленным в icon
. Давайте посмотрим, как извлечь значки с веб-сайта с помощью Aspose.HTML for Python via .NET:
- Используйте конструктор HTMLDocument(Url), чтобы создать экземпляр класса HTMLDocument и передать ему URL-адрес веб-сайта, с которого вы хотите извлечь значки.
- Используйте метод
get_elements_by_tag_name(“link”) для сбора всех элементов
<link>
. - Используйте метод
get_attribute(“rel”), чтобы получить значение атрибута
rel
из HTML-элемента. Отфильтруйте эти элементы, чтобы оставить только те, у которых атрибут rel равен значку, которые обычно используются для определения значков. - Извлеките атрибут href из каждой ссылки на значок, чтобы получить относительные URL-адреса. Преобразуйте эти относительные URL-адреса в абсолютные URL-адреса, используя базовый URI документа.
- Для каждого абсолютного URL-адреса изображения создайте объект RequestMessage и используйте его для отправки сетевого запроса на получение изображения.
- Используйте метод документа context.network.send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
- Если ответ указывает на успех, сохраните файл значка локально в предопределенном выходном каталоге.
1import os
2from aspose.html import *
3from aspose.html.net import *
4
5# Define output directory
6output_dir = "output/icons/"
7os.makedirs(output_dir, exist_ok=True)
8
9# Open a document you want to extract icons from
10document = HTMLDocument("https://docs.aspose.com/html/python-net/message-handlers/")
11
12# Collect all <link> elements
13links = document.get_elements_by_tag_name("link")
14
15# Leave only "icon" elements
16icons = [link for link in links if link.get_attribute("rel") == "icon"]
17
18# Create a distinct collection of relative icon URLs
19urls = {icon.get_attribute("href") for icon in icons}
20
21# Create absolute icon URLs
22abs_urls = [Url(url, document.base_uri) for url in urls]
23
24for url in abs_urls:
25 # Create a request message
26 request = RequestMessage(url)
27
28 # Extract icon
29 response = document.context.network.send(request)
30
31 # Check whether the response is successful
32 if response.is_success:
33 # Save icon to a local file system
34 file_path = os.path.join(output_dir, os.path.basename(url.pathname))
35 with open(file_path, 'wb') as file:
36 file.write(response.content.read_as_byte_array())
Вы можете использовать эти примеры Python для автоматизации извлечения всех изображений с веб-сайта. Это полезно для различных задач, таких как архивирование, исследование, анализ веб-контента или любого другого приложения для личного использования. Он также отлично подходит для веб-дизайнеров и разработчиков, которые хотят получать изображения с сайтов.
Загрузите библиотеку Aspose.HTML for Python via .NET, чтобы успешно, быстро и легко манипулировать вашими HTML-документами. Библиотека Python может создавать, изменять, извлекать данные, конвертировать и отображать HTML-документы без необходимости использования внешнего программного обеспечения. Она поддерживает популярные форматы файлов, такие как EPUB, MHTML, XML, SVG и Markdown, а также может выполнять рендеринг в форматах файлов PDF, DOCX, XPS и изображений.
Aspose.HTML предлагает Веб-приложения HTML, которые представляют собой онлайн-коллекцию бесплатных конвертеров, слияний, инструментов SEO, генераторов HTML-кода, инструментов URL, средств проверки доступности веб-страниц и многого другого. Приложения работают в любой операционной системе с веб-браузером и не требуют установки дополнительного программного обеспечения. Легко конвертируйте, объединяйте, кодируйте, генерируйте HTML-код, извлекайте данные из Интернета или анализируйте веб-страницы для SEO, где бы вы ни находились. Используйте нашу коллекцию веб-приложений HTML для выполнения повседневных задач и сделайте свой рабочий процесс безупречным!