jsoup: محلل HTML لجافا
استخرج، نظف، وعالج HTML ببساطة تشبه jQuery في جافا
ما هو jsoup؟
jsoup هي مكتبة جافا خفيفة الوزن لكنها قوية مصممة للعمل مع HTML الواقعي. توفر واجهة برمجة سهلة لتحليل HTML من عناوين URL، الملفات، أو النصوص، واستخراج البيانات ومعالجتها باستخدام اجتياز DOM، محددات CSS، وطرق HTML5 الحديثة. مثالية لاستخراج البيانات من الويب، وتنظيف HTML، يتعامل jsoup مع الترميز غير الصحيح بسلاسة - مما يجعله مثاليًا لتحليل صفحات الويب كما يفعل المتصفح.
على عكس أساليب regex التقليدية، يقدم jsoup نموذج كائن نظيف مع طرق مستوحاة من jQuery، مما يبسط مهام مثل إرسال النماذج، تعديل السمات، واستخراج النصوص. بدون تبعيات وبرخصة MIT، فهو المفضل لمطوري جافا الذين يحتاجون إلى معالجة HTML موثوقة.
أهم مزايا jsoup:
- معالجة HTML الواقعي: يحلل HTML غير المنظم كما تفعل المتصفحات
- بناء جملة مشابه لـjQuery: محددات CSS مألوفة (مثل
doc.select("div.content")
) - ملائم لاستخراج البيانات: يتبع التوجيهات، يتعامل مع الكوكيز، ويرسل النماذج
- متعدد المنصات: جافا خالص بدون تبعيات أصلية
- الأمان: يحتوي على حماية مضمنة من XSS وتنظيف HTML
مثالي لتعدين البيانات، أتمتة الويب، وتحليل المحتوى.
لماذا تختار jsoup؟
- البساطة: واجهة برمجة بديهية مع دعم محددات CSS
- الموثوقية: يتم صيانته بنشاط منذ 2009
- الأداء: مُحسّن للتدفق والمستندات الكبيرة
- المرونة: يعمل مع الأجزاء، الملفات، أو عناوين URL المباشرة
- مخرجات نظيفة: ينسق HTML ويعدله بشكل جميل
التثبيت
أضف jsoup عبر Maven أو Gradle:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
متطلبات النظام: جافا 8+
أمثلة على الكود
حالات استخدام عملية لـjsoup:
المثال 1: تحليل مستند من سلسلة نصية
إذا كان لديك HTML في سلسلة جافا، وتريد تحليل HTML لاستخراج محتوياته، أو لتعديله، يمكن لـjsoup تحقيق هذا لك ببضعة أسطر من الكود.
تحوّل الطريقة parse(String html, String baseUri) HTML المدخل إلى مستند جديد. تساعد المعلمة baseUri في تحويل عناوين URL النسبية إلى مطلقة ويجب أن تتوافق مع عنوان URL الذي تم استرداد المستند منه. إذا كان هذا غير ذي صلة، أو إذا كان HTML يحتوي على عنصر
المثال 2: استخدام محددات CSS للعثور على العناصر
تريد العثور على العناصر أو معالجتها باستخدام محددات CSS. قم بتحليل ومعالجة سلسلة HTML مباشرة:
المثال 3: تعديل HTML لعنصر
تحتاج إلى تعديل HTML لعنصر. استخدم طرق تعيين HTML في Element كما هو موضح في نموذج الكود التالي.
ميزات متقدمة
يدعم jsoup معالجة HTML الاحترافية:
- معالجة النماذج: إرسال بيانات POST:
إرسال النموذج
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- دعم الوكيل: استخراج البيانات عبر الوكلاء:
تكوين الوكيل
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- معالجة DOM: تعديل بنية HTML:
تغييرات DOM
doc.select("div.ads").remove(); // إزالة جميع الإعلانات doc.select("h1").attr("class", "header"); // إضافة فئة CSS
jsoup مقابل HTMLUnit
الاختلافات الرئيسية:
- التركيز: يحلل jsoup HTML الثابت؛ بينما يحاكي HTMLUnit المتصفحات (تنفيذ JavaScript)
- السرعة: jsoup أسرع في تحليل HTML الخالص
- نمط الواجهة: يستخدم jsoup محددات CSS؛ بينما يحاكي HTMLUnit Selenium
- حالات الاستخدام: jsoup لاستخراج البيانات؛ HTMLUnit لاختبار الصفحات الديناميكية
- التبعيات: jsoup لا يحتاج إلى تبعيات؛ HTMLUnit يتطلب مكتبات إضافية
الختام
jsoup هو مجموعة الأدوات النهائية لمطوري جافا للتعامل مع HTML. مثالي لـ:
- استخراج بيانات الويب: استخرج البيانات من أي موقع
- تنظيف البيانات: نظف وطبّق HTML
- تحليل المحتوى: حلل موجزات RSS أو أرشيفات الويب
- الاختبار: تحقق من بنية HTML في التطبيقات
بموجب ترخيص MIT وواجهة برمجة بديهية، يعتبر jsoup الخيار الأول لمعالجة HTML باستخدام جافا.
منتجات مماثلة
- Apache POI XWPF | واجهة برمجة تطبيقات Java مفتوحة المصدر لإنشاء وتعديل ملفات DOCX
- DocX | واجهة برمجة تطبيقات .NET مفتوحة المصدر لإنشاء وتعديل ملفات DOCX
- Docx4J | واجهة برمجة تطبيقات Java مفتوحة المصدر لإنشاء وتعديل ملفات DOC وDOCX
- ExcelDataReader | واجهة برمجة تطبيقات .NET مفتوحة المصدر لقراءة مستندات XLS وXLSX وCSV وجداول البيانات
- FileFormat.Cells | إنشاء ملفات Excel وتحديثها باستخدام C# .NET