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

مثالي لتعدين البيانات، أتمتة الويب، وتحليل المحتوى.

GitHub

إحصائيات جيثب

اسم:
لغة:
النجوم:
الشوك:
رخصة:
تم تحديث المستودع آخر مرة في

لماذا تختار 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:

تحليل HTML باستخدام jsoup

المثال 1: تحليل مستند من سلسلة نصية

إذا كان لديك HTML في سلسلة جافا، وتريد تحليل HTML لاستخراج محتوياته، أو لتعديله، يمكن لـjsoup تحقيق هذا لك ببضعة أسطر من الكود.

تحوّل الطريقة parse(String html, String baseUri) HTML المدخل إلى مستند جديد. تساعد المعلمة baseUri في تحويل عناوين URL النسبية إلى مطلقة ويجب أن تتوافق مع عنوان URL الذي تم استرداد المستند منه. إذا كان هذا غير ذي صلة، أو إذا كان HTML يحتوي على عنصر ، يمكنك استخدام الطريقة الأبسط parse(String 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 باستخدام جافا.

منتجات مماثلة

 عربي