jsoup: Java HTML पार्सर
Java में jQuery जैसी सरलता के साथ HTML स्क्रैप, क्लीन और मैनिपुलेट करें
jsoup क्या है?
jsoup एक हल्की परंतु शक्तिशाली Java लाइब्रेरी है जो वास्तविक HTML के साथ काम करने के लिए डिज़ाइन की गई है। यह URL, फाइल या स्ट्रिंग से HTML पार्स करने, DOM ट्रैवर्सल, CSS सिलेक्टर्स और आधुनिक HTML5 मेथड्स का उपयोग कर डेटा निकालने और मैनिपुलेट करने के लिए एक सहज API प्रदान करती है। वेब स्क्रैपिंग, डेटा एक्सट्रैक्शन और HTML सैनिटाइजेशन के लिए आदर्श, jsoup खराब फॉर्मेटेड मार्कअप को ब्राउज़र की तरह सहजता से हैंडल करती है।
रेगेक्स दृष्टिकोण के विपरीत, jsoup jQuery से प्रेरित मेथड्स के साथ एक साफ ऑब्जेक्ट मॉडल प्रदान करती है, जो फॉर्म सबमिशन, एट्रिब्यूट मॉडिफिकेशन और टेक्स्ट एक्सट्रैक्शन जैसे कार्यों को सरल बनाती है। बिना किसी डिपेंडेंसी और MIT लाइसेंस के साथ, यह Java डेवलपर्स की पसंदीदा लाइब्रेरी है जिन्हें विश्वसनीय HTML प्रोसेसिंग की आवश्यकता होती है।
jsoup के मुख्य लाभ:
- वास्तविक HTML हैंडलिंग: ब्राउज़र की तरह गड़बड़ HTML पार्स करती है
- jQuery-जैसा सिंटैक्स: परिचित CSS सिलेक्टर्स (जैसे
doc.select("div.content")
) - स्क्रैपिंग-अनुकूल: रीडायरेक्ट्स को फॉलो करती है, कुकीज़ को हैंडल करती है और फॉर्म सबमिट करती है
- क्रॉस-प्लेटफॉर्म: नेटिव डिपेंडेंसी के बिना शुद्ध Java
- सुरक्षा: अंतर्निहित XSS प्रिवेंशन और HTML सैनिटाइजेशन
डेटा माइनिंग, वेब ऑटोमेशन और कंटेंट एनालिसिस के लिए बिल्कुल सही।
jsoup क्यों चुनें?
- सरलता: CSS सिलेक्टर सपोर्ट के साथ सहज API
- विश्वसनीयता: 2009 से सक्रिय रूप से मेंटेन किया गया
- प्रदर्शन: स्ट्रीमिंग और बड़े डॉक्युमेंट्स के लिए ऑप्टिमाइज़्ड
- लचीलापन: फ्रैगमेंट, फाइल या लाइव URL के साथ काम करता है
- साफ आउटपुट: HTML को सुंदर ढंग से फॉर्मेट और रिफॉर्मेट करता है
इंस्टालेशन
Maven या Gradle के माध्यम से jsoup जोड़ें:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
सिस्टम आवश्यकताएँ: Java 8+
कोड उदाहरण
jsoup के व्यावहारिक उपयोग के उदाहरण:
उदाहरण 1: स्ट्रिंग से डॉक्युमेंट पार्स करना
यदि आपके पास Java स्ट्रिंग में HTML है और आप इसकी सामग्री प्राप्त करने या संशोधित करने के लिए इसे पार्स करना चाहते हैं, तो jsoup कुछ कोड लाइनों में यह कर सकता है।
parse(String html, String baseUri) मेथड इनपुट HTML को एक नए डॉक्युमेंट में बदल देती है। baseUri पैरामीटर रिलेटिव URL को एब्सोल्यूट URL में रिजॉल्व करने में मदद करता है और उस URL से मेल खाना चाहिए जहां से डॉक्युमेंट प्राप्त किया गया था। यदि यह प्रासंगिक नहीं है या यदि HTML में <base> एलिमेंट है, तो आप सरल parse(String html) मेथड का उपयोग कर सकते हैं।
उदाहरण 2: एलिमेंट्स ढूंढने के लिए CSS सिलेक्टर्स का उपयोग
आप CSS सिलेक्टर्स का उपयोग करके एलिमेंट्स ढूंढना या मैनिपुलेट करना चाहते हैं। सीधे HTML स्ट्रिंग को पार्स और मैनिपुलेट करें:
उदाहरण 3: किसी एलिमेंट का HTML संशोधित करना
आपको किसी एलिमेंट का HTML संशोधित करने की आवश्यकता है। निम्नलिखित उदाहरण में दिखाए गए अनुसार Element में HTML सेटर मेथड्स का उपयोग करें:
उन्नत सुविधाएँ
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 निष्पादन)
- गति: शुद्ध HTML पार्सिंग के लिए jsoup तेज़ है
- API शैली: jsoup CSS सिलेक्टर्स का उपयोग करता है; HTMLUnit Selenium की नकल करता है
- उपयोग के मामले: jsoup स्क्रैपिंग के लिए; HTMLUnit डायनामिक पेज टेस्टिंग के लिए
- निर्भरताएँ: jsoup में कोई नहीं; HTMLUnit को अतिरिक्त लाइब्रेरी की आवश्यकता होती है
निष्कर्ष
jsoup Java डेवलपर्स के लिए अंतिम HTML टूलकिट है। इसके लिए आदर्श:
- वेब स्क्रैपिंग: किसी भी वेबसाइट से डेटा निकालें
- डेटा सफाई: HTML को सैनिटाइज़ और नॉर्मलाइज़ करें
- सामग्री विश्लेषण: RSS फीड या वेब आर्काइव पार्स करें
- परीक्षण: ऐप्स में HTML संरचना सत्यापित करें
MIT लाइसेंस और सहज API के साथ, Java में HTML प्रोसेसिंग के लिए jsoup सर्वोत्तम विकल्प है।
इसी तरह के उत्पादों
- Apache POI XWPF | DOCX फ़ाइलें बनाने और संशोधित करने के लिए ओपन सोर्स जावा API
- DocX | DOCX फ़ाइलें बनाने और संशोधित करने के लिए ओपन सोर्स .NET API
- Docx4J | DOC और DOCX फ़ाइलें बनाने और संशोधित करने के लिए ओपन सोर्स जावा API
- ExcelDataReader | XLS, XLSX, CSV और स्प्रेडशीट दस्तावेज़ों को पढ़ने के लिए ओपन सोर्स .NET API
- FileFormat.Cells | C# .NET के साथ Excel फ़ाइलें बनाएँ और अपडेट करें