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

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

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

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

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



HTML पार्सिंग (वेब पेजों से डेटा निकालना) आधुनिक विकास में एक प्रमुख कार्य है। Java इस उद्देश्य के लिए शक्तिशाली उपकरण प्रदान करता है। इस लेख में हम तीन लोकप्रिय लाइब्रेरीज़ पर विचार करेंगे: Jsoup, HtmlUnit और Apache Tika। आप जानेंगे कि उन्हें कैसे स्थापित करें, वे किन समस्याओं का समाधान करते हैं, और कार्यशील कोड उदाहरण देखेंगे।



HTML पार्सिंग की आवश्यकता क्यों है?

HTML पार्सिंग का उपयोग इसके लिए किया जाता है:

  • वेबसाइटों से डेटा एकत्र करना (मूल्य, समाचार, संपर्क)।
  • वेब अनुप्रयोगों का परीक्षण (इंटरफ़ेस तत्वों को निकालना)।
  • नियमित कार्यों का स्वचालन (फॉर्म भरना, लिंक जांचना)।
  • साइटों की SEO संरचना का विश्लेषण।


1. Jsoup — Java के लिए सबसे लोकप्रिय HTML पार्सर

Jsoup HTML के साथ काम करने के लिए एक हल्की, सहज लाइब्रेरी है। यह पेज लोड कर सकती है, उन्हें पार्स कर सकती है, CSS-सेलेक्टर और jQuery-जैसी विधियों का उपयोग करके डेटा निकाल सकती है। Jsoup स्वचालित रूप से गलत मार्कअप को ठीक करता है, जो इसे वास्तविक साइटों को पार्स करने के लिए आदर्श बनाता है।



स्थापना (Maven)

<dependency>    <groupId>org.jsoup</groupId>    <artifactId>jsoup</artifactId>    <version>1.17.2</version></dependency>


उदाहरण: सभी समाचारों के शीर्षक निकालना

मान लीजिए, हमें एक समाचार पोर्टल से सभी लेखों के शीर्षक प्राप्त करने हैं। हम CSS-सेलेक्टर h2.news-title का उपयोग करते हैं।

import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.select.Elements;

public class JsoupExample { public static void main(String[] args) throws Exception { // HTML पेज लोड करें Document doc = Jsoup.connect("https://example.com/news") .userAgent("Mozilla/5.0") .timeout(5000) .get();

// "news-title" वर्ग वाले सभी h2 तत्व निकालें Elements titles = doc.select("h2.news-title");

// प्रत्येक शीर्षक का टेक्स्ट प्रिंट करें for (var title : titles) { System.out.println(title.text()); } }}

Jsoup की विशेषताएं:

  • ब्राउज़र के बिना काम करता है, केवल HTTP अनुरोध।
  • CSS-सेलेक्टर का समर्थन (jQuery की तरह)।
  • DOM में हेरफेर की संभावना (तत्व जोड़ना, हटाना)।
  • JavaScript निष्पादित नहीं कर सकता।


2. HtmlUnit — JavaScript समर्थन के साथ पार्सिंग

HtmlUnit Java पर एक ब्राउज़र एमुलेटर है। यह केवल HTML पार्स नहीं करता, बल्कि पेज को पूरी तरह से प्रोसेस करता है: JavaScript निष्पादित करता है, CSS लोड करता है, AJAX अनुरोधों को संभालता है। यह आधुनिक SPA साइटों (React, Angular) के लिए आदर्श है।



स्थापना (Maven)

<dependency>    <groupId>net.sourceforge.htmlunit</groupId>    <artifactId>htmlunit</artifactId>    <version>2.70.0</version></dependency>


उदाहरण: JavaScript लोड होने के बाद डेटा प्राप्त करना

मान लीजिए, पेज पर एक डायनामिक ब्लॉक है जो लोड होने के 2 सेकंड बाद दिखाई देता है। HtmlUnit इसका इंतजार करेगा।

import com.gargoylesoftware.htmlunit.WebClient;import com.gargoylesoftware.htmlunit.html.HtmlPage;import com.gargoylesoftware.htmlunit.html.HtmlElement;

public class HtmlUnitExample { public static void main(String[] args) throws Exception { try (WebClient webClient = new WebClient()) { // गति के लिए CSS और लॉगिंग बंद करें webClient.getOptions().setCssEnabled(false); webClient.getOptions().setJavaScriptEnabled(true);

// पेज लोड करें HtmlPage page = webClient.getPage("https://example.com/dynamic");

अनुशंसाएँ