जावा में HTML पार्सिंग: Jsoup, HtmlUnit और अन्य उपकरण

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

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

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

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



HTML पार्सिंग HTML दस्तावेज़ों से संरचित डेटा निकालने की प्रक्रिया है। जावा में इस कार्य के लिए कई शक्तिशाली लाइब्रेरीज़ उपलब्ध हैं, जो न केवल स्थिर पृष्ठों को पार्स करने की अनुमति देती हैं, बल्कि गतिशील सामग्री को भी संसाधित कर सकती हैं। इस लेख में हम तीन सबसे लोकप्रिय उपकरणों पर विचार करेंगे: Jsoup, HtmlUnit और Jericho HTML Parser। इनमें से प्रत्येक की अपनी विशेषताएँ और उपयोग के क्षेत्र हैं।



1. Jsoup — बहुमुखी HTML पार्सर



Jsoup HTML के साथ काम करने के लिए सबसे लोकप्रिय जावा लाइब्रेरी है। यह डेटा लोड करने, पार्स करने और निकालने के लिए एक सुविधाजनक API प्रदान करता है, साथ ही CSS-सेलेक्टर और DOM-ट्री में हेरफेर का समर्थन करता है। Jsoup स्थिर पृष्ठों और सरल वेब-स्क्रैपिंग कार्यों के लिए आदर्श है।



मुख्य क्षमताएँ:

  • URL, फ़ाइल या स्ट्रिंग से HTML लोड करना
  • CSS-सेलेक्टर का उपयोग करके डेटा निकालना
  • अवांछित टैग से HTML को साफ करना
  • DOM में संशोधन (तत्व जोड़ना/हटाना)
  • गलत HTML का स्वचालित सुधार


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

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"); // प्रत्येक शीर्षक का टेक्स्ट प्रिंट करें titles.forEach(title -> System.out.println(title.text())); }}


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



HtmlUnit जावा पर एक headless-ब्राउज़र है जो वेब ब्राउज़र के काम करने का अनुकरण करता है। Jsoup के विपरीत, यह JavaScript कोड निष्पादित करता है, AJAX अनुरोधों को संसाधित करता है और कुकीज़ का समर्थन करता है। यह आधुनिक SPA-एप्लिकेशन और गतिशील सामग्री वाली साइटों को पार्स करने के लिए एक अपरिहार्य उपकरण है।



मुख्य विशेषताएँ:

  • ब्राउज़र का पूर्ण अनुकरण (Chrome, Firefox, IE)
  • JavaScript निष्पादन (jQuery और React सहित)
  • फ़ॉर्म, क्लिक और पृष्ठ नेविगेशन का समर्थन
  • कुकीज़, सत्र और रीडायरेक्ट के साथ काम करना
  • XPath और CSS-सेलेक्टर के लिए अंतर्निहित समर्थन


कोड उदाहरण: गतिशील सामग्री लोड होने की प्रतीक्षा

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()) { // लॉगिंग और टाइमआउट अक्षम करें webClient.getOptions().setThrowExceptionOnScriptError(false); webClient.getOptions().setJavaScriptEnabled(true); // पृष्ठ लोड करें HtmlPage page = webClient.getPage("https://example.com/dynamic"); // JS निष्पादन के लिए 2 सेकंड प्रतीक्षा करें webClient.waitForBackgroundJavaScript(2000); // XPath द्वारा डेटा निकालें HtmlElement element = page.getFirstByXPath("//div[@class='result']/p"); System.out.println("परिणाम: " + element.getTextContent()); } }}


3. Jericho HTML Parser — हल्का और तेज़



Jericho HTML Parser न्यूनतम निर्भरता वाली एक हल्की लाइब्रेरी है। यह अमान्य HTML को पार्स करने में उत्कृष्ट है और दस्तावेज़ संरचना तक निम्न-स्तरीय पहुँच प्रदान करता है।

अनुशंसाएँ