如何从网站提取 SVG
从 HTML 中提取图像的能力对于各种应用(包括网络搜刮和内容分析)至关重要。 Aspose.HTML for Python via .NET 是一个功能强大的库,它通过为开发人员提供一系列工具来无缝导航和收集 HTML 文档中的信息,从而简化了这一过程。这个功能强大的解决方案非常适合需要收集 SVG 以进行分析、存档或内容创建的人,从而消除了手工操作的需要。让我们来探讨如何从网页中下载 SVG 图像。
使用 Python 提取 SVG
HTML 文档中的 SVG 图像有两种形式:内嵌 SVG 和外部 SVG。以下 Python 代码演示了如何使用 Aspose.HTML for Python via .NET 库从网页中自动提取外部 SVG 图像,即与 HTML 分开存储并通过 <img>
标记引用的 SVG 文件:
从网页下载 SVG 的 Python 代码
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 的步骤
- 使用 HTMLDocument(Url) 构造函数创建一个 HTMLDocument 类实例,并将要从中提取外部 SVG 图像的网站 URL 传递给它。
- 使用
get_elements_by_tag_name("img")
方法从 HTML 文档中收集所有<img>
元素。该方法会返回页面中嵌入的图像元素列表。 - 遍历收集到的
<img>
元素,并使用get_attribute("src")
方法从每个元素中提取src
属性。将这些值存储在一个集合中,以消除重复。 - 通过检查提取的 URL 是否以".svg “扩展名结尾,对其进行过滤,从而只分离出外部 SVG 图像。
- 使用
Url
类和文档的base_uri
创建绝对 SVG 图像 URL。 - 为每个绝对 SVG URL 创建一个
RequestMessage
实例,以准备检索图像的 HTTP 请求。 - 发送请求并检查
is_success
属性,以确保响应成功。 - 使用
os.path.basename(url.pathname)
从 SVG URL 获取文件名,然后通过将二进制内容写入输出目录将图像保存到本地文件系统。
要进一步了解如何通过编程从网站提取内联和外部 SVG,请参阅文档文章 Extract SVG From Website in Python 。
注: 始终尊重版权法。在将提取的图片用于商业用途之前,请确保您拥有相应的权利、权限或许可证。我们不赞成或支持未经授权使用受版权保护的内容。
开始使用 Python API
如果您想要解析、操作和管理 HTML 文档,请安装我们灵活、高速的 Aspose.HTML for Python via .NET API。pip
是下载和安装 Python 库的最简单方法。为此,请运行以下命令:
pip install aspose-html-net
有关 Python 库安装和系统要求的更多详细信息,请参阅 Aspose.HTML 文档。
其他支持的功能
使用 Aspose.HTML for Python via .NET 库来解析和操作基于 HTML 的文档。清晰、安全、简单!