2023 में नोड जेएस के साथ वेब स्क्रैपिंग

2023 में नोड जेएस के साथ वेब स्क्रैपिंग

स्रोत नोड: 2022732

वेबपेज से डेटा निकालना चाहते हैं?

नैनोनेट्स पर जाएं वेबसाइट खुरचनी, URL जोड़ें और "स्क्रैप" पर क्लिक करें और वेबपेज टेक्स्ट को तुरंत फ़ाइल के रूप में डाउनलोड करें। अभी मुफ़्त में इसका प्रयोग करके देखें।

नैनोनेट्स की वेबसाइट स्क्रेपर


वेब स्क्रैपिंग क्या है और इसके लाभ क्या हैं?

वेब स्क्रैपिंग का उपयोग बड़े पैमाने पर स्वचालित रूप से वेबपेजों से डेटा स्क्रैप करने के लिए किया जाता है। वेब स्क्रैपिंग को जटिल HTML संरचनाओं में डेटा को संरचित प्रारूप जैसे स्प्रेडशीट या डेटाबेस में परिवर्तित करने के लिए किया जाता है, और अनुसंधान, विश्लेषण और स्वचालन जैसे विभिन्न उद्देश्यों के लिए उपयोग किया जाता है।

लोग वेब स्क्रैपिंग का उपयोग क्यों करते हैं इसके कुछ कारण यहां दिए गए हैं:

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

वेब स्क्रैपिंग के लिए आपको Node.js का उपयोग क्यों करना चाहिए?

Node.js का व्यापक रूप से उपयोग किया जाता है क्योंकि यह एक हल्का, उच्च-प्रदर्शन और कुशल प्लेटफ़ॉर्म है। यहाँ कुछ कारण बताए गए हैं कि क्यों नोड.जेएस वेब स्क्रैपिंग के लिए एक बढ़िया विकल्प है:

  • Node.js कई वेब स्क्रैपिंग अनुरोधों को समानांतर रूप से संभाल सकता है।
  • इसका एक बड़ा समुदाय है जो सार्थक वेब स्क्रैपिंग लाइब्रेरी के लिए सहायता प्रदान करता है और बनाता है।
  • Node.js क्रॉस-प्लेटफ़ॉर्म है, जो इसे वेब स्क्रैपिंग प्रोजेक्ट्स के लिए एक बहुमुखी विकल्प बनाता है
  • Node.js सीखना आसान है, खासकर यदि आप पहले से ही जावास्क्रिप्ट जानते हैं
  • Node.js में HTTP अनुरोधों के लिए अंतर्निहित समर्थन है, जिससे वेबसाइटों से HTML पृष्ठों को लाना और पार्स करना आसान हो जाता है
  • Node.js अत्यधिक स्केलेबल है, जो बड़ी मात्रा में डेटा संसाधित करते समय वेब स्क्रैपिंग के लिए महत्वपूर्ण है

वेबपेज से डेटा निकालना चाहते हैं?

नैनोनेट्स पर जाएं वेबसाइट खुरचनी, URL जोड़ें और "स्क्रैप" पर क्लिक करें और वेबपेज टेक्स्ट को तुरंत फ़ाइल के रूप में डाउनलोड करें। अभी मुफ़्त में इसका प्रयोग करके देखें।

नैनोनेट्स की वेबसाइट स्क्रेपर


नोड जेएस का उपयोग करके वेबपृष्ठों को कैसे स्क्रैप करें?

चरण 1 अपने पर्यावरण की स्थापना:

यदि आपने पहले से नहीं किया है तो आपको नोड.जेएस स्थापित करना होगा। आप इसे आधिकारिक वेबसाइट का उपयोग करके डाउनलोड कर सकते हैं।

चरण 2 Node.js के साथ वेब स्क्रैपिंग के लिए आवश्यक पैकेज इंस्टॉल करना:

Node.js में वेब स्क्रैपिंग के लिए चीयरियो, पपेटियर और अनुरोध जैसे कई विकल्प हैं। आप निम्न आदेश का उपयोग करके उन्हें आसानी से स्थापित कर सकते हैं।

npm install cheerio
npm install puppeteer
npm install request

चरण 3 अपनी परियोजना निर्देशिका की स्थापना:

आपको नई परियोजना के लिए एक नई निर्देशिका बनाने की जरूरत है। और फिर अपने NodeJS वेब स्क्रैपिंग कोड को स्टोर करने के लिए नई फ़ाइल बनाने के लिए कमांड प्रॉम्प्ट पर नेविगेट करें।

आप निम्न आदेश का उपयोग करके एक नई निर्देशिका और नई फ़ाइल बना सकते हैं:

mkdir my-web-scraper
cd my-web-scraper
touch scraper.js

चरण 4 Node.js के साथ HTTP अनुरोध करना:

वेबपृष्ठों को खंगालने के लिए, आपको HTTP अनुरोध करने की आवश्यकता है। अब, Node.js में इन-बिल्ट http मॉड्यूल है। इससे अनुरोध करना आसान हो जाता है। आप अनुरोध करने के लिए axios या अनुरोध का भी उपयोग कर सकते हैं।

यहाँ नोड.जेएस के साथ http अनुरोध करने के लिए कोड है

const http = require('http');
const url = 'http://example.com';
http.get(url, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(data);
});
});

वेबपृष्ठों को खंगालने के लिए http.//example.com को अपनी पसंद के url से बदलें,

चरण 5 HTML को Node.js के साथ स्क्रैप करना:

एक बार आपके पास एक वेब पेज की HTML सामग्री होने के बाद, आपको आवश्यक डेटा निकालने के लिए इसे पार्स करने की आवश्यकता होती है। Node.js में HTML को पार्स करने के लिए कई तृतीय-पक्ष लाइब्रेरी उपलब्ध हैं, जैसे कि चीरियो और JSDOM।

यहाँ HTML को पार्स करने और डेटा निकालने के लिए Cheerio का उपयोग करके एक उदाहरण कोड स्निपेट दिया गया है:

const cheerio = require('cheerio');
const request = require('request');
const url = 'https://example.com';
request(url, (error, response, html) => {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(html);
const title = $('title').text();
const firstParagraph = $('p').first().text();
console.log(title);
console.log(firstParagraph);
}
});

यह कोड वेब पेज की HTML सामग्री को url पर लाने के लिए अनुरोध लाइब्रेरी का उपयोग करता है और फिर HTML को पार्स करने और शीर्षक और पहला पैराग्राफ निकालने के लिए Cheerio का उपयोग करता है।

Node.js का उपयोग करके जावास्क्रिप्ट और गतिशील सामग्री को कैसे प्रबंधित करें?

कई आधुनिक वेब पेज गतिशील सामग्री प्रस्तुत करने के लिए जावास्क्रिप्ट का उपयोग करते हैं, जिससे उन्हें परिमार्जन करना मुश्किल हो जाता है। JavaScript रेंडरिंग को हैंडल करने के लिए, आप Puppeteer और Playwright जैसे हेडलेस ब्राउज़र का उपयोग कर सकते हैं, जो आपको एक ब्राउज़र वातावरण का अनुकरण करने और गतिशील सामग्री को परिमार्जन करने की अनुमति देते हैं।

जावास्क्रिप्ट के साथ सामग्री प्रस्तुत करने वाले वेब पेज को स्क्रैप करने के लिए कठपुतली का उपयोग करने वाला एक उदाहरण कोड स्निपेट यहां दिया गया है:

const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const title = await page.$eval('title', el => el.textContent);
const firstParagraph = await page.$eval('p', el => el.textContent);
console.log(title);
console.log(firstParagraph);
await browser.close();
})();

यह कोड Puppeteer का उपयोग एक हेडलेस ब्राउज़र लॉन्च करने, url पर वेब पेज पर नेविगेट करने और शीर्षक और पहला पैराग्राफ निकालने के लिए करता है। page.$eval() विधि HTML तत्वों से डेटा का चयन और निष्कर्ष निकालती है।

यहां कुछ लाइब्रेरी हैं जिनका उपयोग आप आसानी से NodeJS का उपयोग करके वेबपृष्ठों को परिमार्जन करने के लिए कर सकते हैं:

चीयरियो: सर्वर साइड के लिए डिज़ाइन किए गए कोर jQuery का तेज़, लचीला और हल्का कार्यान्वयन है।

जेएसडीओएम: Node.js के लिए DOM का शुद्ध-जावास्क्रिप्ट कार्यान्वयन है। यह Node.js में एक DOM वातावरण बनाने का एक तरीका प्रदान करता है और इसे एक मानक API के साथ जोड़-तोड़ करता है।

कठपुतली चलाने वाला: एक Node.js लाइब्रेरी है जो हेडलेस क्रोम या क्रोमियम को नियंत्रित करने के लिए एक उच्च स्तरीय एपीआई प्रदान करती है। इसका उपयोग वेब स्क्रैपिंग, स्वचालित परीक्षण, क्रॉलिंग और रेंडरिंग के लिए किया जा सकता है।

नोड.जेएस के साथ वेब स्क्रैपिंग के लिए सर्वोत्तम अभ्यास

वेब स्क्रैपिंग के लिए Node.js का उपयोग करते समय पालन करने के लिए यहां कुछ सर्वोत्तम अभ्यास दिए गए हैं:

  • किसी वेबसाइट को स्क्रैप करने से पहले, उनके उपयोग की शर्तों को पढ़ें। सुनिश्चित करें कि वेबपेज में वेब स्क्रैपिंग या स्क्रैपिंग वेबपेजों की आवृत्ति पर प्रतिबंध नहीं है।
  • अनुरोधों की आवृत्ति को नियंत्रित करके वेबसाइट को ओवरलोडिंग से बचाने के लिए HTTP अनुरोधों की संख्या सीमित करें।
  • नियमित उपयोगकर्ता के व्यवहार की नकल करने के लिए अपने HTTP अनुरोधों में उचित शीर्षलेख सेट करें।
  • वेबसाइट पर लोड को कम करने के लिए कैश वेबपेज और एक्सट्रेक्टेड डेटा।
  • वेबसाइटों की जटिलता और परिवर्तनशीलता के कारण वेब स्क्रैपिंग त्रुटि-प्रवण हो सकती है।
  • अपनी स्क्रैपिंग गतिविधि की निगरानी करें और समायोजित करें और अपनी दर सीमित करने, हेडर और अन्य सेटिंग्स को आवश्यकतानुसार समायोजित करें।

वेबपेज से डेटा निकालना चाहते हैं?

नैनोनेट्स पर जाएं वेबसाइट खुरचनी, URL जोड़ें और "स्क्रैप" पर क्लिक करें और वेबपेज टेक्स्ट को तुरंत फ़ाइल के रूप में डाउनलोड करें। अभी मुफ़्त में इसका प्रयोग करके देखें।

नैनोनेट्स की वेबसाइट स्क्रेपर


समय टिकट:

से अधिक एअर इंडिया और मशीन लर्निंग