Извлечь изображения с веб-сайта на Python

В этой статье мы рассмотрим, как извлекать различные типы изображений с веб-сайтов с помощью Aspose.HTML for Python via .NET. Используя Python библиотеку, вы можете эффективно загружать изображения с веб-сайта без необходимости ручного поиска. Узнайте, как автоматизировать процесс извлечения изображений и с легкостью оптимизировать рабочий процесс. Давайте начнем извлекать изображения программно!

Извлечь изображения с веб-сайта

Большинство изображений в HTML-документе представлены с помощью элемента <img>. Вот пример того, как использовать Aspose.HTML for Python via .NET для поиска изображений, указанных этим элементом. Итак, чтобы скачать изображения с сайта, вам необходимо сделать несколько следующих шагов:

  1. Инициализируйте объект HTMLDocument с помощью конструктора HTMLDocument(Url) и укажите URL-адрес веб-страницы, из которой вы хотите извлечь изображения.
  2. Вызовите метод get_elements_by_tag_name(“img”) документа, чтобы получить все элементы <img>. Этот метод возвращает коллекцию всех элементов <img>, найденных в HTML-документе.
  3. Извлеките уникальные URL-адреса изображений, перебирая собранные элементы <img> и получая доступ к их атрибуту src с помощью метода get_attribute(“src”). Сохраните эти URL-адреса в наборе, чтобы исключить дубликаты.
  4. Создайте абсолютные URL-адреса изображений, используя класс Url и свойство base_uri класса HTMLDocument, чтобы гарантировать их правильный формат для запросов.
  5. Для каждого абсолютного URL-адреса изображения создайте объект RequestMessage и используйте его для отправки сетевого запроса на получение изображения.
  6. Используйте метод документа context.network.send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
  7. Проанализируйте 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:

  1. Используйте конструктор HTMLDocument(Url), чтобы создать экземпляр класса HTMLDocument и передать ему URL-адрес веб-сайта, с которого вы хотите извлечь значки.
  2. Используйте метод get_elements_by_tag_name(“link”) для сбора всех элементов <link>.
  3. Используйте метод get_attribute(“rel”), чтобы получить значение атрибута rel из HTML-элемента. Отфильтруйте эти элементы, чтобы оставить только те, у которых атрибут rel равен значку, которые обычно используются для определения значков.
  4. Извлеките атрибут href из каждой ссылки на значок, чтобы получить относительные URL-адреса. Преобразуйте эти относительные URL-адреса в абсолютные URL-адреса, используя базовый URI документа.
  5. Для каждого абсолютного URL-адреса изображения создайте объект RequestMessage и используйте его для отправки сетевого запроса на получение изображения.
  6. Используйте метод документа context.network.send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
  7. Если ответ указывает на успех, сохраните файл значка локально в предопределенном выходном каталоге.
 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 для выполнения повседневных задач и сделайте свой рабочий процесс безупречным!

Текст “Веб-приложения HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.