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 から画像を抽出する手順
- HTMLDocument() コンストラクターを使用して HTML ドキュメントを初期化します。
- GetElementsByTagName(
"img"
) メソッドを使用して、すべての<img>
要素を収集します。このメソッドは、HTML ドキュメントの<img>
要素のリストを返します。 Select()
メソッドを使用して相対画像 URL の個別のコレクションを作成し、 GetAttribute("src"
) メソッドを使用して各<img>
要素のsrc
属性を抽出します。 。- Url
クラスと
HTMLDocument
クラスのBaseURI
プロパティを使用して、絶対画像 URL を作成します。 - 絶対 URL ごとに、
RequestMessage(
url
) コンストラクターを使用してリクエストを作成します。 - ドキュメントの
Context.Network.Send(request)
メソッドを使用してリクエストを送信します。応答がチェックされ、成功したことが確認されます。 - 応答が成功した場合は、
File.WriteAllBytes()
メソッドを使用して各画像をローカル ファイルに保存します。 - コード スニペットでは、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 ベースのドキュメントを解析および操作します。明確、安全、そして簡単!