Як витягти 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 для кожної абсолютної SVG URL-адреси, щоб підготувати HTTP-запит для отримання зображення.
  7. Надішліть запит і перевірте властивість is_success, щоб переконатися, що відповідь була успішною.
  8. Використовуйте os.path.basename(url.pathname), щоб отримати ім’я файлу з URL-адреси SVG, а потім збережіть зображення у локальній файловій системі, записавши двійковий вміст у вихідний каталог.

Щоб дізнатися більше про те, як програмно витягувати вбудовані та зовнішні SVG-файли з веб-сайту, зверніться до статті документації Витягування SVG-файлів з веб-сайту в Python .

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



Початок роботи з Python API

Якщо ви хочете аналізувати, маніпулювати та керувати документами 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-документами. Зрозуміло, безпечно і просто!