Извлечь изображения с веб-сайта на 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 website using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.net as ahnet
 6
 7# Prepare output directory
 8output_dir = "output/"
 9os.makedirs(output_dir, exist_ok=True)
10
11# Open HTML document from URL
12with ah.HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-color/") as doc:
13    # Collect all <img> elements
14    images = doc.get_elements_by_tag_name("img")
15
16    # Get distinct relative image URLs
17    urls = set(img.get_attribute("src") for img in images)
18
19    # Create absolute image URLs
20    abs_urls = [ah.Url(url, doc.base_uri) for url in urls]
21
22    for url in abs_urls:
23        # Create a network request
24        request = ahnet.RequestMessage(url)
25
26        # Send request
27        response = doc.context.network.send(request)
28
29        # Check if successful
30        if response.is_success:
31            # Extract file name
32            file_name = os.path.basename(url.pathname)
33
34            # Save image locally
35            with open(os.path.join(output_dir, file_name), "wb") as f:
36                f.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 website using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.net as ahnet
 6
 7# Define output directory
 8output_dir = "output/icons/"
 9os.makedirs(output_dir, exist_ok=True)
10
11# Open a document you want to extract icons from
12document = ah.HTMLDocument("https://docs.aspose.com/html/python-net/")
13
14# Collect all <link> elements
15links = document.get_elements_by_tag_name("link")
16
17# Leave only "icon" elements
18icons = [link for link in links if link.get_attribute("rel") == "icon"]
19
20# Create a distinct collection of relative icon URLs
21urls = {icon.get_attribute("href") for icon in icons}
22
23# Create absolute icon URLs
24abs_urls = [ah.Url(url, document.base_uri) for url in urls]
25
26for url in abs_urls:
27    # Create a request message
28    request = ahnet.RequestMessage(url)
29
30    # Extract icon
31    response = document.context.network.send(request)
32
33    # Check whether the response is successful
34    if response.is_success:
35        # Save icon to a local file system
36        file_path = os.path.join(output_dir, os.path.basename(url.pathname))
37        with open(file_path, 'wb') as file:
38            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.