Kotlin में HTML पार्सिंग: लाइब्रेरीज़ और कोड उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin में HTML पार्सिंग: टूल्स और लाइब्रेरीज़ की पूरी जानकारी

Kotlin एक आधुनिक प्रोग्रामिंग भाषा है जो JVM, Android और ब्राउज़र पर काम करती है। Java के साथ इसकी संगतता और शक्तिशाली स्टैंडर्ड लाइब्रेरी के कारण, Kotlin HTML पार्सिंग के कई प्रभावी तरीके प्रदान करता है। इस लेख में हम Kotlin में HTML पार्सिंग के लिए मुख्य लाइब्रेरीज़, उनकी विशेषताएँ और व्यावहारिक कोड उदाहरण देखेंगे।

1. Jsoup — Kotlin के लिए सार्वभौमिक HTML पार्सर

Jsoup JVM पर HTML पार्सिंग की सबसे लोकप्रिय लाइब्रेरी है। यह Java के साथ पूर्ण संगतता के कारण Kotlin के साथ बेहतरीन काम करती है। Jsoup URL, फ़ाइल या स्ट्रिंग से HTML लोड कर सकता है, और फिर CSS-सेलेक्टर और DOM नेविगेशन के ज़रिए डेटा निकाल सकता है।

Kotlin प्रोजेक्ट में Jsoup इंस्टॉल करना

build.gradle.kts में डिपेंडेंसी जोड़ें:

dependencies {
    implementation("org.jsoup:jsoup:1.17.2")
}

Jsoup के साथ HTML पार्सिंग का उदाहरण

import org.jsoup.Jsoup
import org.jsoup.nodes.Document

fun main() {
    val url = "https://example.com"
    val doc: Document = Jsoup.connect(url).get()
    
    val title = doc.title()
    println("पेज का शीर्षक: $title")
    
    // सभी लिंक निकालें
    val links = doc.select("a[href]")
    links.forEach { link ->
        println("लिंक: ${link.attr("abs:href")} — ${link.text()}")
    }
    
    // स्ट्रिंग से पार्सिंग
    val html = "<div class='content'>नमस्ते, Kotlin!</div>"
    val parsed = Jsoup.parse(html)
    val text = parsed.select(".content").text()
    println("HTML से टेक्स्ट: $text")
}

2. Ktor Client + kotlinx.html — नेटिव Kotlin तरीका

उन प्रोजेक्ट्स के लिए जो HTTP क्लाइंट के रूप में Ktor का उपयोग करते हैं, ktor-client और kotlinx.html का संयोजन एक बेहतरीन विकल्प है। पहला पेज लोड करने के लिए जिम्मेदार है, दूसरा HTML को टाइप की गई DOM संरचना में पार्स करने के लिए।

Ktor और kotlinx.html के लिए डिपेंडेंसी

dependencies {
    implementation("io.ktor:ktor-client-core:2.3.7")
    implementation("io.ktor:ktor-client-cio:2.3.7")
    implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:0.11.0")
}

Ktor और kotlinx.html के साथ पार्सिंग का उदाहरण

import io.ktor.client.*
import io.ktor.client.request.*
import io.ktor.client.statement.*
import kotlinx.html.*
import kotlinx.html.parser.*

suspend fun parseHtmlWithKtor() {
    val client = HttpClient()
    val response: HttpResponse = client.get("https://example.com")
    val htmlContent = response.bodyAsText()
    
    val document = parseHtml(htmlContent)
    val title = document.head?.title ?: "कोई शीर्षक नहीं"
    println("शीर्षक: $title")
    
    // सभी पैराग्राफ निकालें
    document.body?.allElements?.filterIsInstance<P>()?.forEach { p ->
        println("पैराग्राफ: ${p.text}")
    }
    
    client.close()
}

3. Kotlin में HTML पार्सिंग के लिए लाइब्रेरीज़ की तुलना

टूल का चुनाव आपके विशिष्ट कार्य पर निर्भर करता है। यहाँ मुख्य मानदंड दिए गए हैं:

  • Jsoup — CSS-सेलेक्टर के साथ जटिल पार्सिंग के लिए सबसे अच्छा विकल्प। डेटा स्क्रैपिंग, टेबल, फॉर्म और मीडिया एलिमेंट निकालने के लिए उपयुक्त।
  • Ktor + kotlinx.html — Ktor प्रोजेक्ट्स के लिए आदर्श, जहाँ अतिरिक्त डिपेंडेंसी के बिना हल्का पार्सिंग चाहिए। यह एसिंक्रोनस रूप से काम करता है।
  • HtmlCleaner — एक और Java लाइब्रेरी जो Kotlin के साथ अच्छी तरह से काम करती है। "गंदे" HTML को साफ करने के लिए उपयोगी।
  • OkHttp + Jsoup — शक्तिशाली पार्सिंग के साथ HTTP रिक्वेस्ट को बारीकी से कस्टमाइज़ करने का संयोजन।

4. Kotlin में उन्नत पार्सिंग तकनीकें

CSS-सेलेक्टर का उपयोग करके डेटा निकालना (Jsoup)

val doc = Jsoup.connect("https://news.ycombinator.com").get()
val stories = doc.select("tr.athing")
stories.forEach { story ->
    val title = story.select("td.title a").text()
    val link = story.select("td.title a").a                    

अनुशंसाएँ