چرا تصاویر را از HTML استخراج کنیم؟ (مزایا و موارد استفاده)

فایل‌های HTML معمولاً شامل چندین نوع تصویر هستند، مانند: تصاویر تگ استاندارد <img>، تصاویر خطی Base64 (data:image/...)، تصاویری که در CSS تعریف شده‌اند (به عنوان مثال، background-image)، آیکون‌ها و گرافیک‌های SVG، تصاویر لینک شده به صورت خارجی یا منابع تصویری جاسازی شده. استخراج تصاویر از مستندات HTML برای:

  • مهاجرت محتوا
  • استخراج رسانه از ایمیل‌های HTML
  • خزش و تحلیل وب
  • آماده‌سازی مجموعه‌های داده آموزشی برای یادگیری ماشین
  • تبدیل HTML به PDF/Word در حالی که رسانه را حفظ می‌کند
  • بایگانی صفحات وب با دارایی‌های اصلی

HTML Processing API

GroupDocs.Parser Cloud SDK for .NET یک API مبتنی بر REST قوی است که قادر به پردازش تمام فرمت‌های فایل محبوب از جمله فایل‌های HTML است. این امکان را به شما می‌دهد تا فایل‌های HTML را دستکاری کنید و می‌توانید از آن برای:

  • Parse HTML documents
  • تصاویر جاساز و درون‌خطی را استخراج کنید
  • تصاویری که با کدگذاری Base64 استخراج شده‌اند
  • تشخیص ارجاعات به تصاویر خارجی
  • متاداده (اندازه، نوع، مسیر) را بازیابی کنید
  • تصاویر استخراج‌شده را به‌طور محلی دانلود کنید
  • جریان‌های کار تجزیه HTML را خودکار کنید

فرمت‌های تصویر پشتیبانی شده

پیش نیازها

  • یک حساب GroupDocs Cloud (شناسه مشتری و رمز مشتری).
  • .NET 6.0+ نصب شده است.
  • Visual Studio یا IDE سازگار.
  • پکیج NuGet: GroupDocs.Parser-Cloud

از طریق NuGet نصب کنید

dotnet add package GroupDocs.Parser-Cloud --version 25.7.0

استخراج تصاویر از HTML با استفاده از C#

در زیر یک مثال کامل از C# ارائه شده است که استخراج تصویر HTML را با استفاده از API ابری نشان می‌دهد.

مرحله ۱ — راه‌اندازی API:

var config = new Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
var parserApi = new ParserApi(config);
var fileApi = new FileApi(config);

مرحله 2 — اطلاعات فایل HTML را برای تجزیه و تحلیل ارائه دهید:

var fileInfo = new FileInfo { FilePath = "input.html" };
var options = new ImagesOptions { FileInfo = fileInfo };
var request = new ImagesRequest(options);

مرحله ۳ — استخراج تصاویر از HTML (درون‌یار، خطی و Base64):

var response = parserApi.Images(request);

foreach (var image in response.Images)
{
    Console.WriteLine($"Source: {image.Path}, Type: {image.MediaType}, Size: {image.Size}");
}

مرحله ۴ — دانلود تصاویر استخراج شده (مک او اس و ویندوز سازگار):

var outputDirectory = "/Users/nayyer/Downloads/html-images";
Directory.CreateDirectory(outputDirectory);

foreach (var img in response.Images)
{
    var cloudImagePath = img.Path.Replace("\\", "/");

    var downloadRequest = new DownloadFileRequest(path: cloudImagePath);
    using (var stream = fileApi.DownloadFile(downloadRequest))
    {
        var localPath = Path.Combine(outputDirectory, Path.GetFileName(cloudImagePath));

        using (var fileStream = File.Create(localPath))
        {
            stream.CopyTo(fileStream);
        }

        Console.WriteLine($"Downloaded: {localPath}");
    }
}
// برای مثال‌های بیشتر، لطفاً به https://github.com/groupdocs-parser-cloud/groupdocs-parser-cloud-dotnet مراجعه کنید.

var configuration = new Configuration("XXXXXXX-XXXXXXX-XXXXXX-XXXXXX", "XXXXXXXXXXXX");
configuration.ApiBaseUrl = "https://api.groupdocs.cloud";

var parserApi = new ParserApi(config);
var fileApi = new FileApi(config);

var fileInfo = new FileInfo { FilePath = "input.html" };
var options = new ImagesOptions { FileInfo = fileInfo };
var request = new ImagesRequest(options);

var response = parserApi.Images(request);

foreach (var image in response.Images)
{
    Console.WriteLine($"Source: {image.Path}, Type: {image.MediaType}, Size: {image.Size}");
}

var outputDirectory = "/Users/nayyer/Downloads/html-images";
Directory.CreateDirectory(outputDirectory);

foreach (var img in response.Images)
{
    var cloudImagePath = img.Path.Replace("\\", "/");

    var downloadRequest = new DownloadFileRequest(path: cloudImagePath);
    using (var stream = fileApi.DownloadFile(downloadRequest))
    {
        var localPath = Path.Combine(outputDirectory, Path.GetFileName(cloudImagePath));

        using (var fileStream = File.Create(localPath))
        {
            stream.CopyTo(fileStream);
        }

        Console.WriteLine($"Downloaded: {localPath}");
    }
}

دانلود تصاویر HTML با استفاده از cURL

علاوه بر قطعه کد C#، ما همچنین می‌توانیم از دستورات cURL برای دانلود تصاویر از فایل‌های HTML استفاده کنیم.

مرحله 1 — تولید توکن دسترسی: اولین مرحله در این رویکرد ایجاد یک توکن دسترسی JWT بر اساس اعتبارنامه‌های کلاینت است.

curl -v -X POST "https://api.groupdocs.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET" \
-H "Content-Type: application/x-www-form-urlencoded"

*Step 2 — Extract Images:

curl -v -X POST "https://api.groupdocs.cloud/v1.0/parser/images" \
-H  "accept: application/json" \
-H  "authorization: Bearer {ACCESS_TOKEN}" \
-H  "Content-Type: application/json" \
-d "{ "FileInfo": { "FilePath": "inbox/input.html", "StorageName": "internal" }, "OutputPath": "extracted-images"}"

از استخراج کننده تصویر HTML آنلاین رایگان استفاده کنید

ما یک ابزار استخراج تصویر HTML آنلاین رایگان ارائه می‌دهیم که بر اساس API ابری GroupDocs.Parser توسعه یافته است. نیازی به نصب یا دانلود نرم‌افزار نیست و می‌توانید قابلیت‌های API REST را در مرورگر وب ارزیابی کنید.

extract html images

نتیجه گیری

در این مقاله، ما دقیق‌ترین روش استخراج تصاویر از HTML با استفاده از .NET REST API را یاد گرفتیم. با کمک این API، شما می‌توانید:

  • تصاویر جاسازی شده و درون خطی را استخراج کنید
  • تصویرهای رمزگذاری‌شده با Base64 را تجزیه کنید
  • تصویر پس‌زمینه CSS را استخراج کنید
  • متاداده را برای تصاویر لینک شده بازیابی کنید
  • تمام تصاویر را به‌طور برنامه‌نویسی دانلود کنید.

بنابراین، این بهترین راه‌حل برای خودکارسازی استخراج رسانه‌های HTML در برنامه‌های C# است.

مقالات مرتبط

ما به شدت پیشنهاد می‌کنیم که مقالات زیر را برای یادگیری بیشتر در مورد بررسی کنید:

سوالات متداول (FAQs)

  1. آیا می‌توانم تصاویر جاسازی شده Base64 را از HTML استخراج کنم؟ بله، API به طور خودکار تصاویر HTML کدگذاری شده با Base64 و تصاویر درون خطی را استخراج می‌کند.

  2. آیا API تصاویر پیوند داده شده از منابع خارجی را استخراج می‌کند؟ API اطلاعات متادیتا را برای تصاویر مرتبط استخراج می‌کند؛ دانلود آن‌ها اختیاری است.

  3. آیا می‌توانم تصاویری که در CSS ارجاع داده شده‌اند را استخراج کنم؟ بله، تصاویری که از طریق CSS درون‌خط یا جاسازی شده اشاره شده‌اند، پشتیبانی می‌شوند.

۴. چه فرمت‌های عکسی پشتیبانی می‌شوند؟ JPG، PNG، BMP، GIF، TIFF و انواع رایج تصاویر دیگر.

  1. آیا یک آزمایش رایگان وجود دارد؟ بله. شما می‌توانید یک حساب کاربری رایگان ایجاد کنید و 150 تماس API رایگان در ماه دریافت کنید.