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
- 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. - 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. - Iterar através dos elementos
<img>
coletados e utilizar o métodoget_attribute("src")
para extrair o atributosrc
de cada elemento. Armazene esses valores em um conjunto para eliminar duplicatas. - Filtre os URLs extraídos, verificando se terminam com a extensão “.svg” para isolar apenas as imagens SVG externas.
- Utilize a classe
Url
e obase_uri
do documento para criar URLs absolutos de imagens SVG. - Cria uma instância
RequestMessage
para cada URL SVG absoluto para preparar um pedido HTTP para obter a imagem. - Envie o pedido e verifique a propriedade
is_success
para garantir que a resposta foi bem sucedida. - 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!