ウェブサイトからSVGを抽出する方法

HTMLから画像を抽出する機能は、Webスクレイピングやコンテンツ分析など、さまざまなアプリケーションにとって非常に重要です。 Aspose.HTML for Python via .NET は、HTMLドキュメントをシームレスにナビゲートし、情報を収集するための一連のツールを開発者に提供することで、このプロセスを簡素化する堅牢なライブラリです。この強力なソリューションは、分析、アーカイブ、コンテンツ作成のためにSVGを収集する必要がある人にとって理想的であり、手作業の必要性を排除します。それでは、ウェブページからSVG画像をダウンロードする方法を探ってみよう。


Pythonを使ってSVGを抽出する

HTML文書内のSVG画像には、インラインSVG外部SVGの2種類があります。以下のPythonコードは、Aspose.HTML for Python via .NETを使用して、Webページから外部SVG画像(HTMLとは別に保存され、<img>タグで参照されるSVGファイル)を自動化する方法を示しています:


Webページから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を抽出する手順

  1. HTMLDocument(Url) コンストラクタを使って HTMLDocument クラスのインスタンスを生成し、外部 SVG 画像を取り出したいウェブサイトの URL を渡す。
  2. HTMLドキュメントからすべての <img> 要素を収集するには get_elements_by_tag_name("img") メソッドを使用します。このメソッドはページに埋め込まれた画像要素のリストを返します。
  3. 収集した <img> 要素を繰り返し処理し、get_attribute("src") メソッドを使用して各要素から src 属性を抽出する。これらの値をセットで保存し、重複を排除する。
  4. 抽出されたURLの末尾が.svg 拡張子であるかどうかをチェックすることでフィルタリングし、外部SVG画像のみを分離します。
  5. 絶対 SVG 画像 URL を作成するには Url クラスとドキュメントの base_uri を用いる。
  6. 画像を取得するための HTTP リクエストを準備するために、絶対 SVG URL ごとに RequestMessage インスタンスを生成する。
  7. リクエストを送信し、レスポンスが成功したことを確認するために is_success プロパティをチェックする。
  8. os.path.basename(url.pathname)を使ってSVG URLからファイル名を取得し、バイナリコンテンツを出力ディレクトリに書き込むことで画像をローカルファイルシステムに保存する。

プログラムからウェブサイトからインラインSVGや外部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 ドキュメント を参照してください。

その他のサポート機能

HTMLベースのドキュメントを解析および操作するには、Aspose.HTML for Python via .NETライブラリを使用します。明快、安全、シンプル!