HTMLから画像を抽出する方法

HTML から画像を抽出する機能は、Web スクレイピングやコンテンツ分析などのさまざまなアプリケーションにとって重要です。 Aspose.HTML for .NET は、HTML ドキュメントからシームレスに移動して情報を収集するためのツール セットを開発者に提供することで、このプロセスを簡素化する堅牢なライブラリです。 HTML ドキュメントから画像を抽出する方法を見てみましょう。

まず、プロジェクトに Aspose.HTML for .NET がインストールされていることを確認してください。 このライブラリのインストールプロセスは非常に簡単です。 NuGet パッケージ マネージャーを開き、Aspose.HTML を検索してインストールします。 パッケージ マネージャー コンソールから次のコマンドを使用することもできます。


Aspose.HTML for .NET をインストールする

Install-Package Aspose.HTML



C# を使用して HTML から画像を抽出する

Aspose.HTML for .NET クラス ライブラリを使用すると、当社の API が HTML ドキュメントから情報を分析および収集するための強力なツールセットを提供するため、独自のアプリケーションを簡単に作成できます。製品で HTML データ スクレイピング機能を使用する場合、またはプログラムによって HTML からデータを抽出する場合は、以下のコード例を参照してください。 Web スクレイパーやコンテンツ アナライザーを構築している場合でも、Aspose.HTML を使用すると画像抽出を直感的なプロセスにできます。数行の C# コードを使用して、HTML ドキュメントからすべての画像をダウンロードできます。


HTML から画像を抽出する C# コード

using Aspose.Html;
using Aspose.Html.Net;
using System.Linq;
using System.IO;
...

    // Prepare a path to a source HTML file
    string documentPath = Path.Combine(DataDir, "images-from-html.html");

    // Create an instance of an HTML document
    using (var document = new HTMLDocument(documentPath))
    {
        // Collect all <img> elements
        var images = document.GetElementsByTagName("img");

        // Create a distinct collection of relative image URLs
        var urls = images.Select(element => element.GetAttribute("src")).Distinct();

        // Create absolute image URLs
        var absUrls = urls.Select(src => new Url(src, document.BaseURI));

        foreach (var url in absUrls)
        {
            // Create an image request message
            using var request = new RequestMessage(url);

            // Download image
            using var response = document.Context.Network.Send(request);

            var imgName = url.Pathname.Split('/').Last();

            //Check the image in base64 encoding
            if (url.Protocol == "data:" && response.Headers.ContentType.MediaType.Type == "image")
            {
                // Get the image type and set to extension
                imgName = "img1." + response.Headers.ContentType.MediaType.SubType;
            }

            // Check whether a response is successful
            if (response.IsSuccess)
            {
                // Save image to a local file system
                File.WriteAllBytes(Path.Combine(OutputDir, imgName), response.Content.ReadAsByteArray());
            }
        }
    }



HTML から画像を抽出する手順

  1. HTMLDocument() コンストラクターを使用して HTML ドキュメントを初期化します。
  2. GetElementsByTagName("img") メソッドを使用して、すべての <img> 要素を収集します。このメソッドは、HTML ドキュメントの <img> 要素のリストを返します。
  3. Select() メソッドを使用して相対画像 URL の個別のコレクションを作成し、 GetAttribute("src") メソッドを使用して各 <img> 要素の src 属性を抽出します。 。
  4. Url クラスと HTMLDocument クラスの BaseURI プロパティを使用して、絶対画像 URL を作成します。
  5. 絶対 URL ごとに、 RequestMessage(url) コンストラクターを使用してリクエストを作成します。
  6. ドキュメントのContext.Network.Send(request)メソッドを使用してリクエストを送信します。応答がチェックされ、成功したことが確認されます。
  7. 応答が成功した場合は、File.WriteAllBytes() メソッドを使用して各画像をローカル ファイルに保存します。
  8. コード スニペットでは、URL のプロトコルを調べることで画像が Base64 エンコード形式であるかどうかを確認し、真の場合は画像名と拡張子を設定します。

Aspose.HTML for .NET は、高度な HTML 解析ライブラリです。作成、編集、ノード間の移動、データの抽出、HTML、XHTML、MD、EPUB、および MHTML ファイルの結合および PDF、DOCX、画像、およびその他の一般的な形式への変換を行うことができます。さらに、CSS、HTML Canvas、SVG、XPath、および JavaScript もすぐに処理して、操作タスクを拡張します。 C# ライブラリのインストールとシステム要件の詳細については、 Aspose.HTML ドキュメント を参照してください。

サポートされているその他の C# ライブラリの機能

Aspose.HTML for .NET ライブラリを使用して、HTML ベースのドキュメントを解析および操作します。明確、安全、そして簡単!