Как извлечь SVG с веб-сайта

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


Извлечь SVG с помощью Python

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


Код Python для загрузки SVG с веб-страницы

import os
import aspose.html as ah
import aspose.html.net as ahnet

# Define the output directory
output_dir = "output/svg/"
os.makedirs(output_dir, exist_ok=True)

# Open the document you want to extract external SVGs from
document = ah.HTMLDocument("https://products.aspose.com/html/python-net/")

# Collect all <img> elements
images = document.get_elements_by_tag_name("img")

# Create a distinct collection of relative image URLs
urls = set(img.get_attribute("src") for img in images)

# Filter only SVG images
svg_urls = [url for url in urls if url.endswith(".svg")]

# Convert relative URLs to absolute using Url from aspose.html
abs_urls = [ah.Url(url, document.base_uri) for url in svg_urls]

for url in abs_urls:
    # Create a network request for the SVG
    request = ahnet.RequestMessage(url.href)

    # Send request to fetch the SVG
    response = document.context.network.send(request)

    # Check if request succeeded
    if response.is_success:
        # Determine local file path
        file_path = os.path.join(output_dir, os.path.basename(url.pathname))

        # Save SVG to a local file system
        with open(file_path, "wb") as f:
            f.write(response.content.read_as_byte_array())


Шаги по извлечению SVG с веб-сайта

  1. Используйте конструктор HTMLDocument(Url) для создания экземпляра класса HTMLDocument и передайте ему URL сайта, с которого вы хотите извлечь внешние SVG-изображения.
  2. Используйте метод get_elements_by_tag_name("img"), чтобы собрать все элементы <img> из HTML-документа. Этот метод возвращает список элементов изображений, встроенных в страницу.
  3. Пройдитесь по собранным элементам <img> и с помощью метода get_attribute("src") извлеките атрибут src из каждого элемента. Сохраните эти значения в наборе, чтобы исключить дубликаты.
  4. Отфильтруйте извлеченные URL-адреса, проверив, не заканчиваются ли они расширением “.svg”, чтобы выделить только внешние SVG-изображения.
  5. Используйте класс Url и base_uri документа для создания абсолютных URL-адресов изображений SVG.
  6. Создайте экземпляр RequestMessage для каждого абсолютного URL-адреса SVG, чтобы подготовить HTTP-запрос для получения изображения.
  7. Отправьте запрос и проверьте свойство is_success, чтобы убедиться, что ответ был успешным.
  8. Используйте os.path.basename(url.pathname) для получения имени файла из URL-адреса SVG, а затем сохраните изображение в локальной файловой системе, записав двоичное содержимое в выходной каталог.

Чтобы узнать больше о том, как программно на Python извлекать встроенные и внешние SVG с веб-сайта, обратитесь к статье документации Извлечь SVG с веб-сайта на Python .

Примечание: Всегда соблюдайте законы об авторском праве. Убедитесь, что у вас есть соответствующие права, разрешения или лицензии, прежде чем использовать извлеченные изображения в коммерческих целях. Мы не одобряем и не поддерживаем несанкционированное использование материалов, защищенных авторским правом.



Начало работы с API Python

Если вы хотите анализировать HTML-документы, манипулировать ими и управлять ими, установите наш гибкий и высокоскоростной Aspose.HTML for Python via .NET API. pip – это самый простой способ загрузить и установить Aspose.HTML for Python via .NET. Для этого выполните следующую команду:

pip install aspose-html-net

Более подробную информацию об установке библиотеки Python и системных требованиях можно найти в Документации Apose.HTML.

Другие поддерживаемые функции

Используйте библиотеку Aspose.HTML for Python via .NET для анализа и работы с документами на основе HTML. Понятно, безопасно и просто!