لماذا استخراج الصور من HTML؟ (الفوائد وحالات الاستخدام)

ملفات HTML غالباً ما تتضمن عدة أنواع من الصور، مثل: صور علامة <img> القياسية، وصور Base64 المضمنة (data:image/...)، والصور المعرّفة في CSS (مثل background-image)، وأيقونات ورسومات SVG، والصور المرتبطة خارجيًا أو موارد الصور المدمجة. استخراج الصور من مستندات HTML مفيد لـ:

  • ترحيل المحتوى
  • استخراج الوسائط من رسائل البريد الإلكتروني بتنسيق HTML
  • تحليل وزراعة الويب
  • إعداد مجموعات البيانات التدريبية لتعلم الآلة
  • تحويل HTML إلى PDF/Word مع الحفاظ على الوسائط
  • أرشفة صفحات الويب مع الأصول الأصلية

API معالجة HTML

GroupDocs.Parser Cloud SDK for .NET هو واجهة برمجة تطبيقات REST قوية قادرة على معالجة جميع التنسيقات الشائعة للملفات بما في ذلك ملفات HTML. يتيح لك التلاعب بملفات HTML ويمكنك استخدامه لـ:

  • تحليل مستندات HTML
  • استخراج الصور المدمجة والصور المتسقة
  • استخراج الصور المشفرة بصيغة Base64
  • كشف مراجع الصور الخارجية
  • استرجاع البيانات الوصفية (الحجم، النوع، المسار)
  • تحميل الصور المستخرجة محليًا
  • أتمتة تدفقات عمل تحليل HTML

تنسيقات الصور المدعومة

المتطلبات الأساسية

  • حساب GroupDocs Cloud (معرف العميل و سر العميل).
  • .NET 6.0+ تم تثبيته.
  • فيجوال ستوديو أو بيئة تطوير متوافقة.
  • حزمة NuGet: GroupDocs.Parser-Cloud

تثبيت عن طريق NuGet

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

استخراج الصور من HTML باستخدام C#

بالأسفل هو مثال كامل بلغة C# يوضح استخراج الصور من HTML باستخدام واجهة برمجة التطبيقات السحابية.

الخطوة 1 — تهيئة واجهة البرمجة التطبيقية:

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);

الخطوة 3 — استخراج الصور من HTML (مدمجة ، داخل السطر و Base64):

var response = parserApi.Images(request);

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

الخطوة 4 — تنزيل الصور المستخرجة (متوافق مع macOS و Windows):

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 على الإنترنت مجانية تم تطويرها على أساس واجهة برمجة تطبيقات مجموعة GroupDocs.Parser السحابية. لا يتطلب الأمر تثبيت أو تحميل أي برنامج وتقييم إمكانيات واجهة برمجة التطبيقات REST داخل متصفح الويب.

extract html images

استنتاج

في هذه المقالة، لقد تعلمنا الطريقة الأكثر دقة لاستخراج الصور من HTML باستخدام .NET REST API. مع مساعدة هذه الواجهة البرمجية، يمكنك:

  • استخراج الصور المضمنة والصور المدمجة
  • تحليل الصور المشفّرة بـ Base64
  • استخراج صور الخلفية في CSS
  • استرداد بيانات التعريف للصور المرتبطة
  • قم بتنزيل جميع الصور برمجيًا

لذلك، فإنه أفضل حل لأتمتة استخراج وسائط HTML في تطبيقات C#.

المقالات ذات الصلة

نوصي بشدة بزيارة المقالات التالية لمعرفة المزيد عن:

الأسئلة المتكررة (FAQs)

  1. هل يمكنني استخراج الصور المضمنة بتنسيق Base64 من HTML؟ نعم، تقوم واجهة برمجة التطبيقات باستخراج الصور HTML المضمنة والترميز Base64 تلقائيًا.

  2. هل يستخرج واجهة برمجة التطبيقات الصور المرتبطة خارجيًا؟ تستخرج واجهة برمجة التطبيقات بيانات التعريف للصور المرتبطة؛ تحميلها اختياري.

  3. هل يمكنني استخراج الصور المشار إليها في CSS؟ نعم، الصور المشار إليها من خلال CSS مضمنة أو مدمجة مدعومة.

  4. ما هي تنسيقات الصور المدعومة؟ JPG، PNG، BMP، GIF، TIFF، وأنواع الصور الأخرى الشائعة.

  5. هل هناك فترة تجريبية مجانية؟ نعم. يمكنك إنشاء حساب مجاني والحصول على 150 مكالمة API مجانية شهريًا.