Node.js में HTML पार्सिंग: Cheerio, JSDOM और Puppeteer लाइब्रेरीज़

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

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

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

JavaScript (Node.js) में HTML पार्सिंग: पूर्ण गाइड



HTML पार्सिंग आधुनिक वेब डेवलपर के प्रमुख कौशलों में से एक है। Node.js इकोसिस्टम में HTML दस्तावेज़ों से डेटा निकालने के लिए कई शक्तिशाली उपकरण मौजूद हैं। इस लेख में हम तीन मुख्य लाइब्रेरीज़: Cheerio, JSDOM और Puppeteer पर विस्तार से चर्चा करेंगे, साथ ही किसी विशिष्ट कार्य के लिए उपयुक्त उपकरण चुनना सीखेंगे।



1. Cheerio — हल्का और तेज़ पार्सर



Cheerio एक तेज़, लचीली और हल्की लाइब्रेरी है जो सर्वर-साइड के लिए jQuery का एक उपसमूह लागू करती है। यह स्थिर HTML को पार्स करने के लिए आदर्श है, जब पेज पर JavaScript निष्पादित करने की आवश्यकता नहीं होती है।



स्थापना

npm install cheerio


उपयोग का उदाहरण

const cheerio = require('cheerio');const axios = require('axios');

async function parseHTML() { const response = await axios.get('https://example.com'); const $ = cheerio.load(response.data); // पेज का शीर्षक निकालना const title = $('title').text(); console.log('शीर्षक:', title); // सभी लिंक प्राप्त करना const links = []; $('a').each((i, el) => { links.push($(el).attr('href')); }); console.log('लिंक:', links); // तालिका पार्सिंग const tableData = []; $('table tr').each((i, row) => { const cells = []; $(row).find('td, th').each((j, cell) => { cells.push($(cell).text().trim()); }); tableData.push(cells); }); console.log('तालिका डेटा:', tableData);}

parseHTML().catch(console.error);


Cheerio के लाभ

  • उच्च प्रदर्शन — समान उपकरणों से 8 गुना तक तेज़ काम करता है
  • परिचित jQuery सिंटैक्स
  • कम मेमोरी खपत
  • सरल स्थापना और कॉन्फ़िगरेशन


कमियाँ

  • डायनामिक कंटेंट का समर्थन नहीं करता
  • JavaScript निष्पादित नहीं कर सकता
  • SPA अनुप्रयोगों के लिए उपयुक्त नहीं


2. JSDOM — पूर्ण DOM कार्यान्वयन



JSDOM Node.js में ब्राउज़र वातावरण का अनुकरण करता है, DOM और HTML पार्सर का पूर्ण कार्यान्वयन प्रदान करता है। Cheerio के विपरीत, JSDOM JavaScript निष्पादित कर सकता है, जो इसे डायनामिक कंटेंट वाले पेजों को पार्स करने के लिए उपयुक्त बनाता है।



स्थापना

npm install jsdom


उपयोग का उदाहरण

const { JSDOM } = require('jsdom');const axios = require('axios');

async function parseWithJSDOM() { const response = await axios.get('https://example.com'); const dom = new JSDOM(response.data); const document = dom.window.document; // सभी पैराग्राफ प्राप्त करना const paragraphs = Array.from(document.querySelectorAll('p')) .map(p => p.textContent); console.log('पैराग्राफ:', paragraphs); // विशेषताओं के साथ काम करना const images = Array.from(document.querySelectorAll('img')) .map(img => ({ src: img.getAttribute('src'), alt: img.getAttribute('alt') })); console.log('चित्र:', images); // स्क्रिप्ट निष्पादित करना (सावधानी से!) const { window } = new JSDOM(`<body> <script> document.body.innerHTML += '<p>डायनामिक कंटेंट</p>'; </script> </body>`, { runScripts: 'dangerously' }); console.log(window.document.body.innerHTML);}

parseWithJSDOM().catch(console.error);


JSDOM के लाभ

  • DOM API का पूर्ण समर्थन
  • JavaScript निष्पादित करने की क्षमता
  • आधुनिक वेब मानकों का समर्थन
  • ब्राउज़र लाइब्रेरीज़ के साथ संगतता


कमियाँ

  • Cheerio की तुलना में धीमा
  • \

अनुशंसाएँ