Kotlin में HTML पार्सिंग: लाइब्रेरीज़ का अवलोकन और व्यावहारिक उदाहरण
Kotlin एक आधुनिक मल्टी-प्लेटफ़ॉर्म भाषा है जिसका उपयोग सर्वर एप्लिकेशन, Android एप्लिकेशन और ऑटोमेशन टूल विकसित करने के लिए सक्रिय रूप से किया जाता है। सामान्य कार्यों में से एक HTML पार्सिंग है - वेब पेजों से डेटा निकालना, DOM ट्री के साथ काम करना या HTML टेम्पलेट तैयार करना। इस लेख में, हम Kotlin में HTML पार्सिंग के लिए मुख्य लाइब्रेरीज़, उनकी विशेषताओं और कार्यशील कोड उदाहरणों पर विचार करेंगे।
Kotlin में HTML पार्सिंग की आवश्यकता क्यों है?
HTML पार्सिंग निम्नलिखित परिदृश्यों में आवश्यक है, जैसे:
- वेबसाइटों से डेटा संग्रह (वेब स्क्रैपिंग)।
- वेब इंटरफ़ेस परीक्षण का स्वचालन।
- HTML रिपोर्ट या ईमेल टेम्पलेट तैयार करना।
- API या फ़ाइलों से प्राप्त सामग्री का प्रसंस्करण और विश्लेषण।
Java के साथ संगतता और अपने स्वयं के DSL निर्माणों के कारण, Kotlin सिद्ध Java लाइब्रेरीज़ और देशी समाधान दोनों प्रदान करता है।
1. Jsoup — सार्वभौमिक HTML/XML पार्सर
Jsoup JVM इकोसिस्टम में HTML पार्सिंग के लिए सबसे लोकप्रिय लाइब्रेरी है। यह HTML दस्तावेज़ों को लोड करने, पार्स करने और हेरफेर करने के लिए एक सुविधाजनक API प्रदान करता है, CSS सेलेक्टर और jQuery-जैसी विधियों का समर्थन करता है। Kotlin के लिए, Jsoup Java के साथ पूर्ण संगतता और Kotlin एक्सटेंशन का उपयोग करने की क्षमता के कारण उपयुक्त है।
स्थापना (Gradle)
dependencies { implementation("org.jsoup:jsoup:1.17.2")}उदाहरण: ब्लॉग से लेखों के शीर्षक निकालना
import org.jsoup.Jsoupimport org.jsoup.nodes.Document
fun main() { // URL से HTML दस्तावेज़ लोड करें val doc: Document = Jsoup.connect("https://example.com/blog").get()
// "post-title" वर्ग वाले सभी h2 शीर्षक निकालें val titles = doc.select("h2.post-title")
// प्रत्येक शीर्षक का टेक्स्ट प्रिंट करें titles.forEach { title -> println(title.text()) }
// CSS सेलेक्टर का उपयोग करके उदाहरण: लेखों के अंदर सभी लिंक val links = doc.select("article a[href]") links.forEach { link -> println("${link.text()} -> ${link.attr("href")}") }}Jsoup आपको स्ट्रिंग, फ़ाइल या InputStream से HTML पार्स करने के साथ-साथ संभावित खतरनाक तत्वों (XSS सुरक्षा) से HTML को साफ करने की भी अनुमति देता है।
2. kotlinx.html — HTML के साथ काम करने के लिए टाइप-सेफ DSL
kotlinx.html JetBrains की आधिकारिक लाइब्रेरी है, जो टाइप-सेफ DSL का उपयोग करके HTML कोड उत्पन्न करने के लिए डिज़ाइन की गई है। Jsoup के विपरीत, यह मौजूदा HTML को पार्स नहीं करती, बल्कि इसे बनाती है। हालाँकि, पूर्ण चक्र के लिए इसे Jsoup के साथ जोड़ा जा सकता है: पार्सिंग → संशोधन → निर्माण।
स्थापना (Gradle)
dependencies { implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:0.11.0")}उदाहरण: HTML पेज तैयार करना
import kotlinx.html.*import kotlinx.html.stream.createHTML
fun main() { val htmlContent = createHTML().html { head { title("उदाहरण पृष्ठ") meta(charset = "UTF-8") } body { h1 { +"नमस्ते, Kotlin!" } p { +"यह एक पैराग्राफ है जो " b { +"kotlinx.html" } +" का उपयोग करके उत्पन्न किया गया है" } ul { li { +"आइटम 1" } li { +"आइटम 2" } li { +"आइटम 3" } } } } println(htmlContent)}यह दृष्टिकोण रिपोर्ट, ईमेल टेम्पलेट या सर्वर (Ktor) पर गतिशील पेज बनाने के लिए विशेष रूप से उपयोगी है।
3. Ktor Client + Jsoup — HTTP अनुरोधों के साथ पार्सिंग के लिए
यदि पार्सिंग से पहले जटिल HTTP अनुरोध (कुकीज़, हेडर, प्रमाणीकरण के साथ) करने की आवश्यकता है, तो Jsoup के साथ Ktor Client का उपयोग करना सुविधाजनक है। Ktor एक एसिंक्रोनस HTTP क्लाइंट है जो Kotlin coroutines के साथ अच्छी तरह से एकीकृत होता है।
उदाहरण: पेज पार्सिंग
पुस्तकालय में भी
C++ में कार्य शेड्यूलर: कार्यों का निर्माण और प्रबंधन
Rust में एप्लिकेशन कॉन्फ़िगरेशन: config और dotenv लाइब्रेरीज़
Node.js अनुप्रयोगों का कॉन्फ़िगरेशन: सर्वश्रेष्ठ लाइब्रेरी और अभ्यास
वेब अनुप्रयोगों में रीयल-टाइम निर्माण के लिए WebSocket Kotlin लाइब्रेरीज़
C++ के लिए GraphQL लाइब्रेरी: graphql-cpp के साथ API कार्यान्वयन