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
מושלם לכריית נתונים, אוטומציית אתרים וניתוח תוכן.
למה לבחור ב-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:
דוגמה 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.
מוצרים דומים
- Apache POI XWPF | Open Source Java API ליצירה ושינוי של קובצי DOCX
- DocX | Open Source .NET API ליצירה ושינוי של קובצי DOCX
- Docx4J | Open Source Java API ליצירה ושינוי של קובצי DOC ו-DOCX
- ExcelDataReader | Open Source .NET API לקריאת מסמכי XLS, XLSX, CSV ו-Spreadsheet
- FileFormat.Cells | צור ועדכן קבצי Excel עם C# .NET