AngleSharp لـ C# (.NET): دليل شامل مع أمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

AngleSharp لـ C# (.NET): دليل شامل مع أمثلة

AngleSharp هي مكتبة حديثة وعالية الأداء لتحليل (Parsing) والتعامل مع مستندات HTML وCSS وXML وSVG داخل بيئة .NET. توفر للمطورين بلغة C# تطبيقًا كاملاً لنموذج كائن المستند (DOM) قريبًا جدًا من معايير W3C. على عكس العديد من المحللات الأخرى، لا تقوم AngleSharp فقط باستخراج البيانات من النص، بل تبني شجرة DOM كاملة يمكنك التعامل معها تمامًا كما في المتصفح: البحث عن العناصر باستخدام المحددات (Selectors)، تغيير الخصائص، إضافة أو حذف العُقد، وإعادة تحويل النتيجة إلى HTML.

لماذا تحتاج هذه المكتبة؟ في تطوير الويب الحديث والأتمتة، غالبًا ما تكون هناك حاجة لتحليل صفحات HTML برمجيًا. يشمل ذلك تحليل البيانات للتحليلات، استخراج محتوى المواقع (Web Scraping)، اختبار تطبيقات الويب، إنشاء مولدات المواقع الثابتة، أو حتى بناء محرك متصفح خاص بك. AngleSharp مثالية لهذه المهام لأنها مكتوبة بالكامل بلغة C#، ولا تعتمد على مكتبات خارجية (باستثناء .NET Standard)، وتعمل بشكل أسرع بكثير من استخدام HtmlAgilityPack مع التعبيرات المنتظمة (Regex). بالإضافة إلى ذلك، تدعم المكتبة محددات CSS، مما يجعل التنقل في شجرة DOM بديهيًا لأي مطور ويب.

ميزة أخرى مهمة لـ AngleSharp هي وحداتها (Modularity) وقابليتها للتوسع. يمكنك إضافة حزم إضافية للعمل مع CSS، محركات JavaScript (مثل Jint)، أو لتحليل SVG. المكتبة مدعومة بنشاط من المجتمع، ولديها وثائق مفصلة، وتُستخدم في بيئات الإنتاج من قبل العديد من الشركات. في هذا الدليل، سنشرح بالتفصيل عملية التثبيت، أهم الطرق والفئات، وسنقدم مثالًا عمليًا لتحليل صفحة ويب حقيقية.

التثبيت

يتم توزيع AngleSharp عبر NuGet - مدير الحزم لـ .NET. يمكن تثبيتها بطريقتين:

عبر .NET CLI (موصى به)

dotnet add package AngleSharp

عبر Package Manager Console في Visual Studio

Install-Package AngleSharp

للعمل مع تحليل CSS، قم بتثبيت الحزمة الإضافية:

dotnet add package AngleSharp.Css

بعد التثبيت، أضف التوجيهات (using directives) التالية إلى الكود الخاص بك:

using AngleSharp;
using AngleSharp.Dom;
using AngleSharp.Html.Parser;

بداية سريعة - مثال عملي بسيط

لنكتب برنامجًا بسيطًا يقوم بتحميل نص HTML واستخراج العنوان (وسم <h1>) منه:

using AngleSharp;
using AngleSharp.Html.Parser;

// 1. إنشاء المحلل (Parser)
var parser = new HtmlParser();

// 2. تحليل نص HTML إلى مستند DOM
var html = @"<!DOCTYPE html>
<html>
<head><title>صفحة اختبار</title></head>
<body>
    <h1>مرحبًا، AngleSharp!</h1>
    <p>هذه فقرة نصية.</p>
</body>
</html>";

var document = parser.ParseDocument(html);

// 3. البحث عن عنصر h1 وعرض نصه
var h1 = document.QuerySelector("h1");
Console.WriteLine(h1?.TextContent); // سيطبع: مرحبًا، AngleSharp!

// 4. عرض HTML بالكامل مرة أخرى (إعادة تسلسل)
Console.WriteLine(document.DocumentElement.OuterHtml);

يوضح هذا المثال دورة العمل الأساسية مع المكتبة: تحليل (Parsing) ← بحث عن عنصر ← استخراج بيانات. لاحظ أن الدالة QuerySelector تقبل محدد CSS، وهو أمر مريح جدًا.

أهم الطرق، الفئات والواجهات

توفر AngleSharp واجهة برمجة تطبيقات (API) غنية. فيما يلي 8 عناصر أساسية ستحتاجها في 90% من الحالات.

1. HtmlParser - الفئة الرئيسية للتحليل

التوقيع: public class HtmlParser : IHtmlParser

توصيات