जावा में डेटा पार्सिंग और स्क्रैपिंग: शुरुआत से पहला पार्सर तक

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

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

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

जावा क्यों, Python क्यों नहीं? (स्पॉयलर: चुनाव आसान नहीं है)

\n

जब डेटा पार्सिंग और स्क्रैपिंग की बात आती है, तो ज़्यादातर लोगों के दिमाग में Python और उसके BeautifulSoup और Scrapy आते हैं। लेकिन सच कहूं तो, enterprise-डेवलपमेंट, हाई-लोड सिस्टम और माइक्रोसर्विसेज की दुनिया में Java अभी भी राजा है। अगर आप पहले से Java में कोड लिख रहे हैं या इस भाषा को सीखने की सोच रहे हैं, तो इसमें पार्सिंग करना सिर्फ 'संभव' नहीं, बल्कि अक्सर ज़रूरी भी है: तेज़ गति, बिल्ट-इन मल्टीथ्रेडिंग, और HTTP व HTML के लिए शक्तिशाली टूल्स।

\n

इस लेख में हम जावा में वेबसाइट पार्स करना शुरू से सीखेंगे। आप जानेंगे कि कौन सी लाइब्रेरीज़ इस्तेमाल करनी हैं, बैन होने से कैसे बचना है, और अपना पहला काम करने वाला पार्सर कैसे बनाना है। कोड उदाहरण पूरी तरह से व्यावहारिक होंगे — बस कॉपी करें और चलाएं।

\n\n

डेटा पार्सिंग और स्क्रैपिंग क्या है (और आपको इसकी ज़रूरत क्यों है)

\n

कोड में कूदने से पहले, शब्दों को समझ लेते हैं। पार्सिंग का मतलब है किसी संरचना (HTML, JSON, XML) को तोड़ना और उसमें से ज़रूरी जानकारी निकालना। स्क्रैपिंग एक प्रक्रिया है जिसमें वेब पेजों से डेटा इकट्ठा किया जाता है, जिसमें पार्सिंग, पेज लोड करना और लिंक्स पर चलना शामिल है।

\n

इसकी ज़रूरत क्यों है? असल ज़िंदगी के उदाहरण:

\n
    \n
  • प्रतिस्पर्धियों की कीमतों की निगरानी (ई-कॉमर्स साइटों से डेटा इकट्ठा करना)।
  • \n
  • B2B लीड जनरेशन के लिए कॉन्टैक्ट और ईमेल पते इकट्ठा करना।
  • \n
  • सोशल मीडिया से खबरों या पोस्ट को ऑटोमेटिकली इकट्ठा करना।
  • \n
  • उत्पादों की समीक्षाओं और रेटिंग्स का विश्लेषण करना।
  • \n
\n

Java में यह सब तेज़, स्थिर और न्यूनतम मेमोरी खपत के साथ किया जा सकता है।

\n\n

जावा पार्सिंग टूलकिट: लाइब्रेरीज़ चुनना

\n

जावा में डेटा पार्सिंग और स्क्रैपिंग के लिए कई शक्तिशाली लाइब्रेरीज़ हैं। यहाँ मुख्य सेट है जो 95% कामों को कवर करेगा:

\n
    \n
  • Jsoup — HTML पार्सिंग के लिए मुख्य लाइब्रेरी। यह वेबसाइटों पर जा सकती है, CSS-सेलेक्टर्स के ज़रिए एलिमेंट्स निकाल सकती है, और एट्रीब्यूट्स व टेक्स्ट के साथ काम कर सकती है।
  • \n
  • Apache HttpClient या Java 11+ HttpClient — रिक्वेस्ट को फाइन-ट्यून करने, कुकीज़, सेशन और हेडर्स के साथ काम करने के लिए।
  • \n
  • Selenium WebDriver — अगर साइट डेटा लोड करने के लिए JavaScript का उपयोग करती है। यह पेज को असली ब्राउज़र (Chrome, Firefox) की तरह रेंडर करता है।
  • \n
  • OkHttp — HttpClient का हल्का और तेज़ विकल्प।
  • \n
\n

ज़्यादातर स्टैटिक वेबसाइटों के लिए Jsoup + बिल्ट-इन HttpClient काफी है। डायनामिक साइटों के लिए Selenium जोड़ें।

\n\n

Jsoup के साथ अपना पहला जावा पार्सर लिखें

\n

चलिए सरल शुरू करते हैं: एक ब्लॉग से लेखों के हेडलाइन्स पार्स करते हैं। मान लीजिए, हमें pythonlib.ru (काल्पनिक) के मुख्य पेज से सभी हेडलाइन्स इकट्ठा करनी हैं।

\n

Maven में डिपेंडेंसी जोड़ें (pom.xml):

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

अब कोड:

\n
import org.jsoup.Jsoup;\nimport org.jsoup.nodes.Document;\nimport org.jsoup.nodes.Element;\nimport org.jsoup.select.Elements;\n\npublic class SimpleParser {\n    public static void main(String[] args) {\n        try {\n            // 1. पेज लोड करें\n            Document doc = Jsoup.connect("https://pythonlib.ru")\n                    .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36")\n                    .timeout(10000)\n                    .get();\n\n            // 2. सभी h2 हेडलाइन्स चुनें (या कोई अन्य सेलेक्टर)\n            Elements headlines = doc.select("h2.entry-title a");\n\n            // 3. टेक्स्ट और लिंक प्रिंट करें\n            for (Element headline : headlines) {\n                String title = headline.text();\n                String link = headline.attr("href");\n                System.out.println("हेडलाइन: " + title);\n                System.out.println("लिंक: " + link);\n                System.out.println("---");\n            }\n\n        } catch (Exception e) {\n            e.printStac                

ब्लॉग

पुस्तक अनुशंसाएँ