एक ई-कॉमर्स प्लेटफॉर्म बनाने की कल्पना करें जहां हम ईबे, अमेज़ॅन और फ्लिपकार्ट जैसे प्रमुख स्टोरों से वास्तविक समय में उत्पाद डेटा आसानी से प्राप्त कर सकें। निश्चित रूप से, Shopify और इसी तरह की सेवाएँ हैं, लेकिन ईमानदारी से कहें तो केवल एक प्रोजेक्ट के लिए सदस्यता खरीदना थोड़ा बोझिल लग सकता है। तो, मैंने सोचा, क्यों न इन साइटों को खंगाला जाए और उत्पादों को सीधे हमारे डेटाबेस में संग्रहीत किया जाए? यह हमारी ई-कॉमर्स परियोजनाओं के लिए उत्पाद प्राप्त करने का एक कुशल और लागत प्रभावी तरीका होगा।
वेब स्क्रैपिंग में सामग्री को पढ़ने और एकत्र करने के लिए वेब पेजों के HTML को पार्स करके वेबसाइटों से डेटा निकालना शामिल है। इसमें अक्सर ब्राउज़र को स्वचालित करना या साइट पर HTTP अनुरोध भेजना और फिर टेक्स्ट, लिंक या छवियों जैसी जानकारी के विशिष्ट टुकड़ों को पुनः प्राप्त करने के लिए HTML संरचना का विश्लेषण करना शामिल होता है। कठपुतली एक लाइब्रेरी है जिसका उपयोग वेबसाइटों को खंगालने के लिए किया जाता है।
Puppeteer एक Node.js लाइब्रेरी है। यह हेडलेस क्रोम या क्रोमियम ब्राउज़र को नियंत्रित करने के लिए एक उच्च स्तरीय एपीआई प्रदान करता है। हेडलेस क्रोम क्रोम का एक संस्करण है जो यूआई के बिना सब कुछ चलाता है (पृष्ठभूमि में चीजों को चलाने के लिए बिल्कुल सही)।
हम कठपुतली का उपयोग करके विभिन्न कार्यों को स्वचालित कर सकते हैं, जैसे:
सबसे पहले हमें लाइब्रेरी स्थापित करनी होगी, आगे बढ़ें और यह करें।
एनपीएम का उपयोग करना:
npm i puppeteer # Downloads compatible Chrome during installation. npm i puppeteer-core # Alternatively, install as a library, without downloading Chrome.
यार्न का उपयोग करना:
yarn add puppeteer // Downloads compatible Chrome during installation. yarn add puppeteer-core // Alternatively, install as a library, without downloading Chrome.
पीएनपीएम का उपयोग करना:
pnpm add puppeteer # Downloads compatible Chrome during installation. pnpm add puppeteer-core # Alternatively, install as a library, without downloading Chrome.
यहां किसी वेबसाइट को स्क्रैप करने का एक उदाहरण दिया गया है। (पी.एस. मैंने अपने ई-कॉमर्स प्रोजेक्ट के लिए मिंत्रा वेबसाइट से उत्पादों को पुनः प्राप्त करने के लिए इस कोड का उपयोग किया था।)
const puppeteer = require("puppeteer"); const CategorySchema = require("./models/Category"); // Define the scrape function as a named async function const scrape = async () => { // Launch a new browser instance const browser = await puppeteer.launch({ headless: false }); // Open a new page const page = await browser.newPage(); // Navigate to the target URL and wait until the DOM is fully loaded await page.goto('https://www.myntra.com/mens-sport-wear?rawQuery=mens sport wear', { waitUntil: 'domcontentloaded' }); // Wait for additional time to ensure all content is loaded await new Promise((resolve) => setTimeout(resolve, 25000)); // Extract product details from the page const items = await page.evaluate(() => { // Select all product elements const elements = document.querySelectorAll('.product-base'); const elementsArray = Array.from(elements); // Map each element to an object with the desired properties const results = elementsArray.map((element) => { const image = element.querySelector(".product-imageSliderContainer img")?.getAttribute("src"); return { image: image ?? null, brand: element.querySelector(".product-brand")?.textContent, title: element.querySelector(".product-product")?.textContent, discountPrice: element.querySelector(".product-price .product-discountedPrice")?.textContent, actualPrice: element.querySelector(".product-price .product-strike")?.textContent, discountPercentage: element.querySelector(".product-price .product-discountPercentage")?.textContent?.split(' ')[0]?.slice(1, -1), total: 20, // Placeholder value, adjust as needed available: 10, // Placeholder value, adjust as needed ratings: Math.round((Math.random() * 5) * 10) / 10 // Random rating for demonstration }; }); return results; // Return the list of product details }); // Close the browser await browser.close(); // Prepare the data for saving const data = { category: "mens-sport-wear", subcategory: "Mens", list: items }; // Create a new Category document and save it to the database // Since we want to store product information in our e-commerce store, we use a schema and save it to the database. // If you don't need to save the data, you can omit this step. const category = new CategorySchema(data); console.log(category); await category.save(); // Return the scraped items return items; }; // Export the scrape function as the default export module.exports = scrape;
?स्पष्टीकरण:
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3