
Nikolai Smirnov
Software Development Lead

वेब स्क्रैपिंग डेटा संग्रह को स्वचालित करने और परिवर्तनों के लिए वेबसाइटों की निगरानी करने के लिए एक अनिवार्य उपकरण बन गया है। इस ब्लॉग पोस्ट में, हम देखेंगे कि वेब स्क्रैपिंग, किसी वेबसाइट पर होने वाले परिवर्तनों का पता लगाने और इन परिवर्तनों के स्क्रीनशॉट लेने के लिए Puppeteer, एक Node.js लाइब्रेरी, का उपयोग कैसे करें।
Puppeteer एक Node.js लाइब्रेरी है जो DevTools प्रोटोकॉल के माध्यम से हेडलेस क्रोम या क्रोमियम को नियंत्रित करने के लिए एक उच्च-स्तरीय API प्रदान करती है। इसका उपयोग वेब स्क्रैपिंग, स्वचालित परीक्षण या यहां तक कि वेब पेजों के स्क्रीनशॉट और PDF उत्पन्न करने के लिए भी किया जा सकता है।
शुरू करने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित स्थापित हैं:
आप अपने टर्मिनल में निम्न कमांड चलाकर Puppeteer स्थापित कर सकते हैं:
npm install puppeteer
शुरू करने के लिए, आइए एक मूल वेब स्क्रैपर बनाएँ जो किसी वेबसाइट पर नेविगेट करता है और टेक्स्ट सामग्री निकालता है।
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// वेबसाइट पर नेविगेट करें
await page.goto('https://example.com');
// टेक्स्ट सामग्री निकालें
const content = await page.evaluate(() => {
return document.querySelector('h1').innerText;
});
console.log('पेज सामग्री:', content);
await browser.close();
})();
यह स्क्रिप्ट एक हेडलेस ब्राउज़र खोलता है, example.com पर नेविगेट करता है, और <h1> तत्व से टेक्स्ट निकालता है। आप उस वेबसाइट के URL को बदल सकते हैं जिसे आप स्क्रैप करना चाहते हैं और जिस तत्व में आपकी रुचि है उसे मिलाने के लिए चयनकर्ता को समायोजित कर सकते हैं।
Puppeteer आपको वेब पेजों के स्क्रीनशॉट आसानी से लेने की अनुमति देता है। आप पूरे पेज के स्क्रीनशॉट या पेज के विशिष्ट क्षेत्रों को कैप्चर कर सकते हैं।
पूरा पेज स्क्रीनशॉट लेने का तरीका यहां दिया गया है:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// वेबसाइट पर नेविगेट करें
await page.goto('https://example.com');
// पूरा पेज स्क्रीनशॉट लें
await page.screenshot({ path: 'screenshot.png', fullPage: true });
await browser.close();
})();
यह स्क्रिप्ट पूरे पेज का स्क्रीनशॉट screenshot.png के रूप में सहेजता है। आप एक अलग फ़ाइल नाम या स्थान निर्दिष्ट करने के लिए path को संशोधित कर सकते हैं।
वेब स्क्रैपिंग में परिवर्तनों के लिए किसी वेबसाइट की निगरानी करना एक उपयोगी सुविधा है। आप इसे वेबसाइट की सामग्री को बार-बार जांचकर और उसकी तुलना पहले से सहेजे गए संस्करण से करके प्राप्त कर सकते हैं।
यहां टेक्स्ट परिवर्तनों का पता लगाने और सामग्री बदलने पर स्क्रीनशॉट लेने का एक उदाहरण दिया गया है:
const puppeteer = require('puppeteer');
const fs = require('fs');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// वेबसाइट पर नेविगेट करें
await page.goto('https://example.com');
// टेक्स्ट सामग्री निकालें
const currentContent = await page.evaluate(() => {
return document.querySelector('h1').innerText;
});
const previousContentPath = 'previous-content.txt';
let previousContent = '';
// जांचें कि क्या पिछली सामग्री मौजूद है
if (fs.existsSync(previousContentPath)) {
previousContent = fs.readFileSync(previousContentPath, 'utf8');
}
// पिछली सामग्री के साथ वर्तमान सामग्री की तुलना करें
if (currentContent !== previousContent) {
console.log('सामग्री बदल गई है!');
// नई सामग्री सहेजें
fs.writeFileSync(previousContentPath, currentContent);
// परिवर्तन का स्क्रीनशॉट लें
await page.screenshot({ path: `screenshot-${Date.now()}.png`, fullPage: true });
console.log('स्क्रीनशॉट सहेजा गया!');
} else {
console.log('कोई बदलाव नहीं पाया गया।');
}
await browser.close();
})();
इस उदाहरण में:
<h1> तत्व की सामग्री निकालता है।previous-content.txt) के साथ वर्तमान सामग्री की तुलना करता है।previous-content.txt में सहेजी जाती है।आप node-cron पैकेज का उपयोग करके इस स्क्रिप्ट को अंतराल पर चलाने के लिए शेड्यूल करने के लिए Node.js का उपयोग कर सकते हैं।
सबसे पहले, node-cron स्थापित करें:
npm install node-cron
अब, अपनी स्क्रिप्ट को एक निर्धारित अंतराल (जैसे, हर 5 मिनट) पर चलने के लिए संशोधित करें:
const puppeteer = require('puppeteer');
const fs = require('fs');
const cron = require('node-cron');
cron.schedule('*/5 * * * *', async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const currentContent = await page.evaluate(() => {
return document.querySelector('h1').innerText;
});
const previousContentPath = 'previous-content.txt';
let previousContent = '';
if (fs.existsSync(previousContentPath)) {
previousContent = fs.readFileSync(previousContentPath, 'utf8');
}
if (currentContent !== previousContent) {
console.log('सामग्री बदल गई है!');
fs.writeFileSync(previousContentPath, currentContent);
await page.screenshot({ path: `screenshot-${Date.now()}.png`, fullPage: true });
console.log('स्क्रीनशॉट सहेजा गया!');
} else {
console.log('कोई बदलाव नहीं पाया गया।');
}
await browser.close();
});
यह स्क्रिप्ट हर 5 मिनट (*/5 * * * *) चलेगा और वेबसाइट पर परिवर्तनों की जांच करेगा। यदि यह कोई परिवर्तन पता लगाता है, तो यह एक स्क्रीनशॉट लेगा और अपडेट को लॉग करेगा।
CapSolver पर शीर्ष कैप्चा समाधानों के लिए अपना बोनस कोड प्राप्त करें: scrape. इसे रिडीम करने के बाद, आपको प्रत्येक रिचार्ज के बाद 5% अतिरिक्त बोनस मिलेगा, असीमित बार।

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

अटोमेशन के लिए तेज CAPTCHA समाधान एपीआई: टोकन वर्कफ़्लो की तुलना करें, समर्थित चुनौतियां, लैटेंसी जांच, और CapSolver एकीकरण के लिए जिम्मेदार।
