TypeScript में डेटा पार्सिंग और स्क्रैपिंग: क्यों यह आपका नया सुपर-टूल है
\n\nक्या आपने कभी सपना देखा है कि आप मिनटों में दर्जनों वेबसाइटों से मूल्यवान डेटा इकट्ठा कर सकें, न कि हफ्तों में? या अपने शैक्षिक प्रोजेक्ट के लिए रूटीन डेटा संग्रह को ऑटोमेट कर सकें? अगर हाँ, तो आप सही जगह पर हैं। आज हम बात करेंगे कि कैसे TypeScript में पार्सिंग आपको डेटा का असली मास्टर बना सकता है।
\n\nबहुत से लोग सोचते हैं कि पार्सिंग सिर्फ Python का काम है। हाँ, Python प्रोटोटाइप का राजा है, लेकिन जब प्रोजेक्ट गंभीर हो जाता है, तब TypeScript मैदान में आता है। सख्त टाइपिंग, आसान async/await सपोर्ट और शानदार IDE सपोर्ट TypeScript में डेटा स्क्रैपिंग को न सिर्फ संभव बनाता है, बल्कि बेहद मजेदार भी बनाता है। आइए जानें कि यह कैसे काम करता है।
\n\nपार्सिंग के लिए TypeScript क्यों, सिर्फ Python क्यों नहीं?
\n\nकोड में कूदने से पहले, ईमानदारी से मान लें: Python त्वरित शुरुआत के लिए बहुत अच्छा है। लेकिन TypeScript के अपने फायदे हैं:
\n\n- \n
- टाइपिंग बेवकूफी भरी गलतियों से बचाती है। आपको पता होता है कि फंक्शन क्या रिटर्न कर रहा है — स्ट्रिंग, ऐरे या ऑब्जेक्ट। रनटाइम में कोई अचानक
undefinedनहीं। \n - असिंक्रोनसिटी बिल्ट-इन। TypeScript में
async/awaitबेहतरीन काम करता है, और यह पार्सिंग के लिए महत्वपूर्ण है जहाँ सैकड़ों रिक्वेस्ट एक साथ प्रोसेस करनी होती हैं। \n - Node.js इकोसिस्टम। पार्सिंग की सभी बेहतरीन लाइब्रेरीज़ (Cheerio, Puppeteer, Playwright) के पास TypeScript के लिए शानदार टाइप्स हैं। \n
- स्केलेबिलिटी। TypeScript कोड को बड़े प्रोजेक्ट्स में मेंटेन करना आसान है, खासकर अगर आप पूरे कोर्स या शैक्षिक प्लेटफॉर्म के लिए पार्सर लिख रहे हैं। \n
अगर आप एक डेवलपर हैं जो साफ, समझने योग्य और विश्वसनीय कोड लिखना चाहते हैं — TypeScript में पार्सिंग आपका पसंदीदा टूल बन जाएगा।
\n\nपार्सिंग के लिए लाइब्रेरीज़: हथियार चुनें
\n\nTypeScript की दुनिया में तीन मुख्य हीरो हैं। हर एक की अपनी सुपरपावर है:
\n\n1. Cheerio — हल्की तोपखाना
\nअगर आपको सिर्फ HTML पार्स करना है और पूरा ब्राउज़र लोड किए बिना डेटा निकालना है — Cheerio आपकी पसंद है। यह सर्वर पर jQuery की तरह काम करता है, लेकिन विज़ुअल रेंडरिंग के बिना। स्टैटिक पेजों के लिए आदर्श।
\n\n2. Puppeteer — भारी तोपखाना
\nजब वेबसाइट कंटेंट रेंडर करने के लिए JavaScript (React, Angular, Vue) का उपयोग करती है, तब Cheerio बेकार हो जाता है। यहाँ Puppeteer काम आता है — यह एक असली Chrome ब्राउज़र को कंट्रोल करता है। आप क्लिक कर सकते हैं, स्क्रॉल कर सकते हैं, एलिमेंट्स के आने का इंतज़ार कर सकते हैं।
\n\n3. Playwright — आधुनिक ऑलराउंडर
\nMicrosoft द्वारा Puppeteer का एवोल्यूशन। Chrome, Firefox, Safari को सपोर्ट करता है। अधिक स्थिर और तेज़। अगर नया प्रोजेक्ट शुरू कर रहे हैं — Playwright पर ध्यान दें।
\n\nइस ट्यूटोरियल के लिए हम Cheerio (सरलता के लिए) और Puppeteer (जटिल सीनारियो के लिए) का उपयोग करेंगे। चलिए शुरू करते हैं!
\n\nप्रैक्टिस: TypeScript में पहला पार्सर लिखें
\n\nमान लीजिए हम एक ब्लॉग (जैसे pythonlib.ru) से सभी आर्टिकल्स की लिस्ट इकट्ठा करना चाहते हैं। एक सरल लेकिन काम करने वाला स्क्रैपर बनाते हैं।
\n\nस्टेप 1. प्रोजेक्ट सेटअप और इंस्टॉलेशन
\nएक फोल्डर बनाएं और प्रोजेक्ट इनिशियलाइज़ करें:
\n\nmkdir typescript-parser\ncd typescript-parser\nnpm init -y\nnpm install cheerio axios typescript @types/node --save-dev\nnpx tsc --init\n\ntsconfig.json सेट करें: "module": "commonjs" और "target": "ES2020" चालू करें।
स्टेप 2. पार्सर का कोड लिखें
\nparser.ts फ़ाइल बनाएं:
import axios from 'axios';\nimport * as cheerio from 'cheerio';\n\ninterface Article {\n title: string;\n link: string;\n date: string;\n}\n\nasync function parseArticles(url: string): Promise<Article[]> {\n try {\n const response = await axios.get(url);\n const html = response.data;\n const $ = cheerio.load(html);\n const articles: Article[] = [];\n\n // मान लें कि आर्टिकल्स एलिमेंट में हैं