jsoup: מנתח ה-HTML עבור Java

סרוק, נקה ומניפולציה של HTML בפשטות דמוית jQuery ב-Java

מה זה jsoup?

jsoup היא ספריית Java קלת משקל אך חזקה המיועדת לעבודה עם HTML אמיתי. היא מספקת API אינטואיטיבי לניתוח HTML מ-URLs, קבצים או מחרוזות, חילוץ ומניפולציה של נתונים באמצעות מעבר DOM, בוררי CSS ושיטות מודרניות של HTML5. אידיאלי לסריקת אתרים, חילוץ נתונים וניקוי HTML, jsoup מטפל בסימון לא תקין בצורה חלקה - בדיוק כמו דפדפן.

בשונה מגישות מבוססות regex, jsoup מציעה מודל אובייקטים נקי עם שיטות בהשראת jQuery, המפשטות משימות כמו שליחת טפסים, שינוי תכונות וחילוץ טקסט. ללא תלות בחבילות נוספות ועם רישיון MIT, זו הבחירה המועדפת על מפתחי Java הזקוקים לעיבוד HTML אמין.

יתרונות עיקריים של jsoup:

  • טיפול ב-HTML אמיתי: מנתח HTML מבולגן כמו דפדפנים
  • תחביר דמוי jQuery: בוררי CSS מוכרים (למשל doc.select("div.content"))
  • ידידותי לסריקה: עוקב אחר הפניות, מטפל בעוגיות ושולח טפסים
  • חוצה פלטפורמות: Java טהורה ללא תלות בחבילות נוספות
  • אבטחה: הגנה מובנית מפני XSS וניקוי HTML

מושלם לכריית נתונים, אוטומציית אתרים וניתוח תוכן.

GitHub

סטטיסטיקות GitHub

שֵׁם:
שפה:
כוכבים:
מזלגות:
רישיון:
המאגר עודכן לאחרונה ב

למה לבחור ב-jsoup?

  • פשטות: API אינטואיטיבי עם תמיכה בבוררי CSS
  • אמינות: מתוחזק באופן פעיל מאז 2009
  • ביצועים: מותאם לסטרימינג ומסמכים גדולים
  • גמישות: עובד עם קטעים, קבצים או כתובות ישירות
  • פלט נקי: מעצב ומארגן מחדש HTML

התקנה

הוסף את jsoup דרך Maven או Gradle:

Maven



    org.jsoup
    jsoup
    1.17.2


Gradle


implementation 'org.jsoup:jsoup:1.17.2'

דרישות מערכת: Java 8+

דוגמאות קוד

מקרי שימוש מעשיים של jsoup:

ניתוח HTML עם jsoup

דוגמה 1: ניתוח מסמך ממחרוזת

אם יש לך HTML במחרוזת Java ואתה רוצה לנתח אותו כדי לקבל את התוכן או לשנות אותו, jsoup יכול לעשות זאת בכמה שורות קוד.

השיטה parse(String html, String baseUri) ממירה את ה-HTML הקלט למסמך חדש. הפרמטר baseUri עוזר להפוך כתובות יחסיות למוחלטות ויש להתאים אותו לכתובת שממנה נלקח המסמך. אם זה לא רלוונטי או אם ה-HTML מכיל אלמנט <base>, אתה יכול להשתמש בשיטה הפשוטה יותר 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 טהור
  • סגנון API: jsoup משתמש בבוררי CSS; HTMLUnit מחקה את Selenium
  • מקרי שימוש: jsoup לסריקה; HTMLUnit לבדיקת דפים דינמיים
  • תלויות: ל-jsoup אין; HTMLUnit דורש ספריות נוספות

סיכום

jsoup היא ערכת הכלים האולטימטיבית למפתחי Java העובדים עם HTML. אידיאלי עבור:

  • סריקת אתרים: חילוץ נתונים מכל אתר אינטרנט
  • ניקוי נתונים: חיטוי ונורמליזציה של HTML
  • ניתוח תוכן: ניתוח הזנות RSS או ארכיוני אינטרנט
  • בדיקות: אימות מבנה HTML ביישומים

עם רישיון MIT ו-API אינטואיטיבי, jsoup היא הבחירה המובילה לעיבוד HTML ב-Java.

מוצרים דומים

 Hebrew