プログラムからWebサイトからSVGを抽出する

HTMLから画像を抽出する機能は、Webスクレイピングやコンテンツ分析など、さまざまな用途で重要です。 Aspose.HTML for Java は、HTMLドキュメントからシームレスにナビゲートし情報を収集するための一連のツールを開発者に提供することで、このプロセスを簡素化する堅牢なライブラリです。それでは、ウェブサイトから外部のSVG画像を抽出する方法を探ってみましょう。


Javaを使ってHTMLからSVGを抽出する

Aspose.HTML for Javaライブラリを使用すると、HTMLドキュメントからデータを解析および抽出するための堅牢なツールセットを使用して、独自のアプリケーションをすばやく構築できます。以下の例では、わずか数行のJavaコードでHTMLドキュメントからすべての外部SVGを抽出する方法を示しています。


ウェブサイトからSVGを抽出するJavaコード

// Open a document you want to download external SVGs from
final HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net/");

// Collect all <img> elements
HTMLCollection images = document.getElementsByTagName("img");

// Create a distinct collection of relative image URLs
java.util.Set<String> urls = new HashSet<>();
for (Element element : images) {
    urls.add(element.getAttribute("src"));
}

// Filter out non SVG images
java.util.List<String> svgUrls = new ArrayList<>();
for (String url : urls) {
    if (url.endsWith(".svg")) {
        svgUrls.add(url);
    }
}
// Create absolute SVG image URLs
java.util.List<Url> absUrls = svgUrls.stream()
    .map(src -> new Url(src, document.getBaseURI()))
    .collect(Collectors.toList());

for (Url url : absUrls) {
    // Create a downloading request
    final RequestMessage request = new RequestMessage(url);

    // Download SVG image
    final ResponseMessage response = document.getContext().getNetwork().send(request);

    // Check whether response is successful
    if (response.isSuccess()) {
        String[] split = url.getPathname().split("/");
        String path = split[split.length - 1];

        // Save file to a local file system
        FileHelper.writeAllBytes(path, response.getContent().readAsByteArray());
    }
}



HTMLからSVGを抽出する手順

  1. HTMLDocument(Url) コンストラクタを使って HTMLDocument クラスのインスタンスを作成し、外部 SVG 画像を抽出したいウェブサイトの URL を渡す。
  2. getElementsByTagName("img") メソッドを用いて全ての <img> 要素を収集する。
  3. getAttribute("src") メソッドを使用して、各画像要素から src 属性を抽出し、相対画像 URL の個別のコレクションを作成します。
  4. 各 URL が .svg で終わっているかどうかをチェックすることで SVG 画像 URL のみをフィルタリングし、それらを新しいリストに追加する。
  5. Url クラスと HTMLDocument クラスの BaseURI プロパティを使用して、絶対画像 URL を作成する。
  6. それぞれの絶対 URL に対して、 RequestMessage(url) コンストラクタを使用してリクエストを作成します。各リクエストを送信し、レスポンスが成功したかどうかを確認します。
  7. レスポンスが成功したら、FileHelper.writeAllBytes() を使って SVG の内容をローカルファイルシステムに保存する。

Aspose.HTML for Javaを使えば、ウェブページを解析し、SVG画像ソースを特定し、SVGをダウンロードするツールを簡単に作成できます。これは、分析、アーカイブ、コンテンツ作成のためにSVGを収集する必要がある人にとって強力なソリューションです。Javaを使ってウェブサイトから様々なタイプ(インラインと外部)のSVGをプログラムで抽出する方法については、ドキュメント記事 Extract SVG From Website in Java を参照。

**注意:**保存された画像を商業目的で使用する前に、著作権法を尊重し、適切な許可またはライセンスを取得することが重要です。私たちは、他人のファイルを無断で取り出して商業目的で使用することを支持しません。




Java HTML パーサー ライブラリを使ってみる

HTML API は、高度な Web スクレイピングおよび HTML 解析ライブラリです。ノードを作成、編集、ナビゲートし、データを抽出し、HTML、XHTML、および MHTML ファイルを PDF、画像、およびその他の形式に変換できます。さらに、CSS、HTML Canvas、SVG、XPath、および JavaScript をすぐに使用して、操作タスクを拡張することもできます。これはスタンドアロン API であり、ソフトウェアのインストールは必要ありません。

Aspose Maven リポジトリ から最新バージョンを直接ダウンロードし、次の設定を pom.xml に追加することで、Maven ベースのプロジェクト内にインストールできます。


リポジトリ

<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>

依存

<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-html</artifactId>
<version>version of aspose-html API</version>
<classifier>jdk17</classifier>
</dependency>

その他のサポート機能

Aspose.HTML for Javaライブラリを使用して、HTMLベースのドキュメントを解析し、操作します。明快、安全、シンプル!