Como extrair SVG de um site

A capacidade de extrair imagens de HTML é crucial para vários aplicativos, incluindo raspagem da Web e análise de conteúdo. o Aspose.HTML for Python via .NET é uma biblioteca robusta que simplifica esse processo, oferecendo aos desenvolvedores um conjunto de ferramentas para navegar e coletar informações de documentos HTML sem problemas. Esta poderosa solução é ideal para quem precisa de recolher SVGs para análise, arquivo ou criação de conteúdos, eliminando a necessidade de trabalho manual. Vamos explorar como descarregar imagens SVG de páginas Web.


Extrair SVG utilizando Python

As imagens SVG em documentos HTML apresentam-se de duas formas: svg em linha e svg externo. O código Python a seguir demonstra como automatizar a extração de imagens SVG externas, arquivos SVG armazenados separadamente do HTML e referenciados por meio de tags <img>, de uma página da Web usando a biblioteca Aspose.HTML for Python via .NET:


Código Python para descarregar SVGs de uma página web

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())


Passos para extrair SVG de um sítio Web

  1. Utilize o construtor HTMLDocument(Url) para criar uma instância da classe HTMLDocument e passe-lhe o URL do sítio Web do qual pretende extrair imagens SVG externas.
  2. Utilize o método get_elements_by_tag_name("img") para coletar todos os elementos <img> do documento HTML. Este método retorna uma lista de elementos de imagem embutidos na página.
  3. Iterar através dos elementos <img> coletados e utilizar o método get_attribute("src") para extrair o atributo src de cada elemento. Armazene esses valores em um conjunto para eliminar duplicatas.
  4. Filtre os URLs extraídos, verificando se terminam com a extensão “.svg” para isolar apenas as imagens SVG externas.
  5. Utilize a classe Url e o base_uri do documento para criar URLs absolutos de imagens SVG.
  6. Cria uma instância RequestMessage para cada URL SVG absoluto para preparar um pedido HTTP para obter a imagem.
  7. Envie o pedido e verifique a propriedade is_success para garantir que a resposta foi bem sucedida.
  8. Utilize os.path.basename(url.pathname) para obter o nome do ficheiro a partir do URL do SVG e, em seguida, guarde a imagem no sistema de ficheiros local, escrevendo o conteúdo binário no diretório de saída.

Para saber mais sobre como extrair programaticamente SVGs em linha e externos de um sítio Web, consulte o artigo da documentação Extract SVG From Website in Python .

Nota: Respeite sempre as leis de direitos de autor. Certifique-se de que possui os direitos, autorizações ou licenças adequados antes de utilizar as imagens extraídas para fins comerciais. Não aprovamos nem apoiamos a utilização não autorizada de conteúdos protegidos por direitos de autor.



Introdução à API Python

Se você quiser analisar, manipular e gerenciar documentos HTML, instale nossa API flexível e de alta velocidade Aspose.HTML for Python via .NET. pip é a maneira mais fácil de baixar e instalar a biblioteca Python. Para fazer isso, execute o seguinte comando:

pip install aspose-html-net

Para mais detalhes sobre a instalação da biblioteca Python e os requisitos do sistema, consulte Documentação Aspose.HTML.

Outras caraterísticas suportadas

Use a biblioteca Aspose.HTML for Python via .NET para analisar e manipular documentos baseados em HTML. Claro, seguro e simples!