Извлечь изображения с веб-сайта на 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-адрес изображения, чтобы получить имя файла, затем сохраните изображение в локальной файловой системе, записав содержимое изображения в файл в назначенном выходном каталоге.
 1# Extract images from a website in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.net as ahnet
 6
 7# Prepare the output directory
 8output_dir = "output"
 9os.makedirs(output_dir, exist_ok=True)
10
11# Load the webpage and collect image URLs
12with ah.HTMLDocument("https://docs.aspose.com/html/net/tutorial/html-colors/") as document:
13    # Collect all <img> elements
14    images = document.get_elements_by_tag_name("img")
15
16    urls = {image.get_attribute("src") for image in images if image.get_attribute("src")}
17
18    # Download each image
19    for image_url in urls:
20        url = ah.Url(image_url, document.base_uri)
21        file_name = os.path.basename(url.pathname)
22
23        if not file_name:
24            continue
25
26        with ahnet.RequestMessage(url) as request:
27            with document.context.network.send(request) as response:
28                if response.is_success:
29                    with open(os.path.join(output_dir, file_name), "wb") as file:
30                        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. Если ответ указывает на успех, сохраните файл значка локально в предопределенном выходном каталоге.
 1# Extract icons from a website in Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.net as ahnet
 6
 7# Prepare the output directory
 8output_dir = os.path.join("output", "icons")
 9os.makedirs(output_dir, exist_ok=True)
10
11# Load the webpage and collect icon URLs
12with ah.HTMLDocument("https://docs.aspose.com/html/python-net/") as document:
13    links = document.get_elements_by_tag_name("link")
14    icon_urls = {
15        link.get_attribute("href")
16        for link in links
17        if "icon" in (link.get_attribute("rel") or "").lower().split()
18        and link.get_attribute("href")
19    }
20
21    # Download each icon
22    for icon_url in icon_urls:
23        url = ah.Url(icon_url, document.base_uri)
24        file_name = os.path.basename(url.pathname)
25
26        if not file_name:
27            continue
28
29        with ahnet.RequestMessage(url) as request:
30            with document.context.network.send(request) as response:
31                if response.is_success:
32                    file_path = os.path.join(output_dir, file_name)
33                    with open(file_path, "wb") as file:
34                        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”