Playwright के साथ एक WooCommerce प्रोडक्ट स्क्रेपर कैसे बनाएँ
Scrapeless Agent Browser WooCommerce स्टोरफ्रंट्स के लिए Playwright ऑटोमेशन चलाता है, और Scrapeless Residential Proxies उन बाज़ारों के लिए नेटवर्क रूटिंग सपोर्ट करते हैं जहाँ स्टोर की कीमतें लोकेशन के अनुसार बदलती हैं।
संक्षेप में
- WooCommerce कलेक्शन्स और प्रोडक्ट पेज अलग-अलग सवालों के जवाब देते हैं। खोज के लिए कैटलॉग डेटा का उपयोग करें और जब ज़रूरत हो तो चुने गए ऑफ़र को वेरिफ़ाई करने के लिए रेंडर की गई स्टेट का इस्तेमाल करें।
- वेरिएबल प्रोडक्ट्स को एक विकल्प संयोजन की ज़रूरत होती है। एक पेरेंट ID या दिखाई दे रही प्राइस रेंज किसी खरीदे जा सकने वाले वेरिएशन की पहचान नहीं करती।
- टेस्ट IDs उसी साइट की होती हैं जो उन्हें परिभाषित करती है। सेलेक्टर्स लिखने से पहले सक्रिय थीम या टेस्ट स्टोरफ्रंट की जाँच करें।
- एक स्वीकृत रिकॉर्ड कैप्चर संदर्भ को सुरक्षित रखता है। वेरिएशन की पहचान, प्राइस टाइप, करेंसी, उपलब्धता और कैप्चर समय को एक साथ रखें।
वह WooCommerce सतह चुनें जो सवाल का जवाब देती है
एक WooCommerce प्रोडक्ट स्क्रेपर प्रोडक्ट्स खोजने के लिए कैटलॉग सोर्सेज़ का उपयोग करता है और जब रेंडर किया गया स्टोरफ्रंट मायने रखता है, तो Playwright का इस्तेमाल करके इंटरऐक्टिव ऑफ़र को कन्फ़र्म करता है। जिस स्टोर के आप मालिक हैं या जिसके डेटा संग्रह की आपको अनुमति है, उस पर सार्वजनिक कैटलॉग फ़ील्ड्स और फ़िल्टर्स के लिए WooCommerce Store API Products resource को देखें। Products resource यह डॉक्यूमेंट करता है कि प्रकाशित और पासवर्ड-प्रोटेक्टेड प्रोडक्ट्स को कैसे रिप्रज़ेंट किया जाता है और प्रोडक्ट वेरिएशन रिकॉर्ड डिफ़ॉल्ट प्रोडक्ट कलेक्शन से कैसे अलग होते हैं।
अगर कोई स्वीकृत कैटलॉग फ़ीड सभी ज़रूरी फ़ील्ड्स उपलब्ध कराता है तो उसका उपयोग करें। जब कोई थीम या एक्सटेंशन इंटरेक्शन के बाद दिखाई जाने वाली कीमत, स्टॉक मैसेज या वैरिएंट चयन बदलता है तो ब्राउज़र उपयुक्त होता है। हर फ़ील्ड की उत्पत्ति (provenance) स्पष्ट रखें। अगर एक स्टोर API अमाउंट बेस वैल्यू हो और दिखाई देने वाली प्रोडक्ट प्राइस में स्टोर-परिभाषित डिस्प्ले एडजस्टमेंट हो, तो दोनों अलग-अलग उद्देश्य पूरा कर सकते हैं।
यह तरीका कैटलॉग QA, चुने गए सार्वजनिक ऑफ़र्स की मॉनिटरिंग, यह जाँचने कि वेरिएबल प्रोडक्ट्स इच्छित जानकारी दिखा रहे हैं, और मर्चेंडाइजिंग रिव्यू के लिए स्क्रीनशॉट इकट्ठा करने में काम आता है। स्क्रैपिंग से पहले तय करें कि टीम किस आउटपुट की उम्मीद करती है। प्राइस चयन की टेस्टिंग के लिए उपयुक्त फ़िक्स्चर मार्केटिंग फ़ील्ड्स छोड़े बिना भी वेरिएशन वर्कफ़्लो का प्रतिनिधि हो सकता है।
पूर्वापेक्षाएँ और इंस्टॉलेशन
Node.js को Playwright और Chromium रनटाइम के साथ उपयोग करें। Playwright पैकेज और उसका Chromium बाइनरी इंस्टॉल करें या उपलब्ध किसी कम्पैटिबल Chromium executable का उपयोग करें। आपको ऐसा स्टोर चाहिए जिसे आप संचालित करते हों या जिससे डेटा इकट्ठा करने की अनुमति हो, और एक सैंपल जिसमें सिंपल प्रोडक्ट्स, वेरिएबल प्रोडक्ट्स और अनुपलब्ध संयोजन शामिल हों। नीचे दिया गया उदाहरण स्थिर एट्रिब्यूट्स वाले नियंत्रित फ़िक्स्चर का उपयोग करता है ताकि WooCommerce थीम के लिए सेलेक्टर्स को एडॉप्ट करने से पहले इसे चलाया जा सके।
रिमोट एक्ज़ीक्यूशन के लिए Agent Browser Playwright quickstart का उपयोग करें और Scrapeless अकाउंट और API key को डॉक्यूमेंटेशन के अनुसार कॉन्फ़िगर करें। क्रेडेंशियल को लक्ष्य URLs और लॉग्स से बाहर रखें। लोकली टेस्ट किया गया उदाहरण एक मौजूदा Playwright पेज का उपयोग करता है। रिमोट रन के लिए एक अधिकृत टारगेट भी चाहिए जो क्लाउड सेशन से पहुँच योग्य हो और कोई भी सहमति की गई लोकेशन या मार्केट सेटिंग्स वहाँ लागू हों।
चरण 1. प्रोडक्ट्स खोजें और सोर्स IDs सुरक्षित रखें
हर टारगेट को स्वीकृत साइटमैप, स्टोरफ्रंट नेविगेशन, स्टोर फ़ीड या डॉक्यूमेंटेड कैटलॉग सोर्स से खोजें। जहाँ उपलब्ध हो, स्टोर नेमस्पेस और प्रोडक्ट ID सुरक्षित रखें। डेडुप्लिकेशन के लिए कैनॉनीकल रूट और विज़िट में उपयोग किया गया ओरिजिनल रूट सेव करें। URL Standard यह परिभाषित करता है कि रिलेटिव लिंक्स कैसे रिज़ॉल्व होते हैं। जब वे उस स्टोरफ्रंट स्टेट की पहचान करते हों जिसे आप वेरिफ़ाई करने की योजना बना रहे हैं, तो वेरिएशन क्वेरी पैरामीटर्स या रूट कम्पोनेंट्स को सुरक्षित रखें।
कैटलॉग पेजिनेशन को प्रोडक्ट एक्सट्रैक्शन से अलग ट्रीट करें। हर डिस्कवरी रन के लिए फ़िल्टर्स और कर्सर या पेज को रिकॉर्ड करें। ड्यूरेबल IDs का उपयोग करके रिज़ल्ट्स को डेडुप्लिकेट करें, और एक स्पष्ट अपर लिमिट और कम्प्लीशन रूल सेट करें। यह लिस्टिंग पेजेज़ को प्रोडक्ट डिटेल पेजेज़ के साथ भ्रमित होने से रोकता है और अगर कोई कैटेगरी प्रोडक्ट्स खोती हुई लगे तो टीम को ऑडिट ट्रेल देता है।
चरण 2. पहचानें कि थीम वेरिएशन को कैसे कन्फ़र्म करती है
वेरिएशन कैप्चर विकल्प कंट्रोल्स और उस संकेत की पहचान से शुरू होता है जो उनकी अंतिम स्टेट को कमिट करता है। लेबल और इनपुट बहेवियर का निरीक्षण करें। कोई थीम नेटिव सेलेक्ट्स, स्वैचेज़ या कस्टम बटन का उपयोग कर सकती है। जब कलेक्टर कोई संयोजन चुनता है, तो उस संयोजन से जुड़ी वेरिएशन पहचान, रिज़ॉल्व्ड स्टॉक स्टेट या दिखाई देने वाला अमाउंट देखें। एक्सट्रैक्शन को प्रोडक्ट डिटेल रीजन तक सीमित रखें ताकि कोई सेल बैनर या संबंधित आइटम अमाउंट न दे दे।
निम्नलिखित Playwright फ़ंक्शन एक नियंत्रित WooCommerce-स्टाइल प्रोडक्ट फ़िक्स्चर पढ़ता है। टेस्ट IDs और रेडीनेस एट्रिब्यूट्स उस फ़िक्स्चर का हिस्सा हैं। असली WooCommerce साइट पर, सेलेक्टर्स को किसी ज्ञात थीम के लिए एडॉप्ट करें या स्टोर टीम से स्थिर रेडीनेस मार्कर एक्सपोज़ करने के लिए कहें। उदाहरण में चुने गए नीले मग के लिए एक असिंक्रोनस प्राइस चेंज को एक्सरसाइज़ किया गया है।
async function readWooProduct(page, targetUrl, selections) {
const response = await page.goto(targetUrl, { waitUntil: 'domcontentloaded' });
if (!response?.ok()) throw new Error('Product navigation failed');
const product = page.getByTestId('product-detail');
const title = await product.getByRole('heading', { level: 1 }).innerText();
for (const [label, value] of Object.entries(selections)) {
await product.getByRole('combobox', { name: label }).selectOption(value);
}
const expected = JSON.stringify(selections);
await page.waitForFunction(options => {
const node = document.querySelector('[data-testid="resolved-offer"]');
if (!node || node.dataset.state !== 'ready') return false;
const selected = JSON.parse(node.dataset.options || '{}');
return Object.entries(JSON.parse(options))
.every(([name, value]) => selected[name] === value);
}, expected, { timeout: 5000 });
return product.getByTestId('resolved-offer').evaluate((node, heading) => ({
title: heading,
url: location.href,
variantId: node.dataset.variantId,
options: JSON.parse(node.dataset.options),
priceText: node.querySelector('[data-testid="price"]')?.textContent.trim() || null,
currency: node.dataset.currency || null,
availability: node.dataset.availability || 'unknown'
}), title);
}
नियंत्रित फ़िक्स्चर सफेद विकल्प से शुरू होता है और नीले को वेरिएशन 11 तक रिज़ॉल्व करता है, जिसकी दिखाई देने वाली अमाउंट $21.00 है। लोकल टेस्ट वेरिएशन और अमाउंट दोनों को साथ में वेरिफ़ाई करता है। अगर एडेप्टर कॉन्ट्रैक्ट उस शेप को परिभाषित करता है, तो सिंपल प्रोडक्ट खाली चयन और अपनी खुद की प्रोडक्ट आइडेंटिटी वाले रेडी ऑफ़र का उपयोग कर सकता है। जब कोई वेरिएशन अनुपलब्ध हो, तो उसका स्पष्ट स्टॉक मैसेज कैप्चर करें और अगर कॉन्ट्रैक्ट अनुमति देता हो तो अमाउंट के अनुपस्थित रहने की इजाज़त दें।
चरण 3. कीमत को उसके संदर्भ के साथ समझें
किसी प्राइस फ़ील्ड को दिखाई देने वाली सेलिंग प्राइस, काटी हुई लिस्ट प्राइस और रेंज के बीच अंतर करना चाहिए। नॉर्मलाइज़ेशन से पहले रॉ अमाउंट और करेंसी को सुरक्षित रखें। कीमत और उपलब्धता के लिए Offer vocabulary for price and availability जब सामान्यीकृत फ़ील्ड्स को नाम दे रहे हों। यदि कर, शुल्क, शिपिंग या प्रोमोशन मायने रखते हैं, तो दस्तावेज़ करें कि मौजूदा सतह उन्हें कैसे शामिल करती है। उन्हें बाज़ारों के बीच चुपचाप मिलाने से बचें।
एक अनुपलब्ध वेरिएंट अभी भी एक उपयोगी कैटलॉग अवलोकन है। इसकी स्पष्ट स्थिति और चुने हुए संयोजन को संग्रहीत करें। अनसुलझी वेरिएंट स्थिति को अलग परिणाम दें ताकि खाली कीमत को कभी शून्य के रूप में न समझा जाए। एक खाली सेलेक्टर सक्रिय थीम, असमर्थित संयोजन या पेज तक न पहुँच पाने के कारण हो सकता है। स्टॉक लेबल असाइन करने से पहले आस-पास के साक्ष्यों की जाँच करें।
राशि सामान्यीकरण के लिए एक ही स्वीकृत स्रोत-ए-ट्रुथ का उपयोग करें। यदि आप Store API का उपयोग करते हैं, तो उसकी राशियों को साथ में दी गई मुद्रा जानकारी के साथ व्याख्यायित करें। यदि आप डिस्प्ले का उपयोग करते हैं, तो उसे साइट के ज्ञात लोकेल और राशि प्रकार के अनुसार पार्स करें। दोनों को एक छोटे नमूने के लिए तुलना करें और जानबूझकर किए गए अंतर दर्ज करें। यह ऐसे स्टोर प्लगइन्स को पकड़ सकता है जो कैटलॉग फीड को अपडेट किए बिना डिस्प्ले फ़ील्ड बदल देते हैं।
चरण 4. ब्राउज़र को सही मार्केट में चलाएँ
उपयोग करें Scrapeless Agent Browser जब काम को एक मैनेज्ड ब्राउज़र सेशन की ज़रूरत हो, और managed web automation solution का उपयोग करें जब आप स्टोरफ्रंट्स के पोर्टफोलियो में इंटरैक्टिव वर्कफ़्लो की योजना बना रहे हों। Playwright proxy setup guide समझाता है कि रूटिंग ब्राउज़र कॉन्फ़िगरेशन में कैसे फिट बैठती है। अधिकृत स्थान-विशिष्ट कैप्चर के लिए, Residential Proxies चुनें और नेविगेट करने के बाद मुद्रा, लोकेल और डिलीवरी संदर्भ की जाँच करें।
स्टोर सेलेक्टर में सेट किया गया मार्केट कुकीज़ या URL में स्टोर किया जा सकता है। प्रत्येक स्वतंत्र मार्केट टेस्ट को इच्छित सेशन नीति के साथ शुरू करें। राशि स्वीकार करने से पहले सत्यापित करें कि रेंडर किया गया मार्केट सहमत है। वास्तविक ब्राउज़र अवधि और ट्रांसफ़र को टेम्पलेट के अनुसार रखें ताकि आप उन्हें Scrapeless pricingसे तुलना कर सकें। price monitoring proxy solution उपयोगी है जब संग्रह को क्षेत्र-दर-क्षेत्र सुसंगत अवलोकनों की आवश्यकता होती है।
कलेक्टर क्या लौटाता है
एक उपयोगी WooCommerce रिकॉर्ड में स्टोर, प्रोडक्ट या वेरिएशन आइडेंटिफ़ायर, चयनित एट्रीब्यूट्स, अंतिम URL, कच्ची डिस्प्ले कीमत, मुद्रा, स्पष्ट उपलब्धता और अवलोकन समय शामिल होता है। स्रोत, संग्रह संस्करण और क्या आपने सिंपल या वेरिएबल प्रोडक्ट पाथ का उपयोग किया, इसे रिकॉर्ड करें। अधूरे आउटपुट को स्पष्ट कारण के साथ सहेजें और उन्हें मान्य ऑफ़र इवेंट्स से अलग रखें। यह प्राइसिंग या QA उपभोक्ताओं को एक विश्वसनीय तरीका देता है यह अलग करने का कि कौन-सा अवलोकन पूरा है और कौन-सा कलेक्टर URL तक तो पहुँचा लेकिन पेज को सत्यापित नहीं कर सका।
एडॉप्टर को एक ज्ञात प्रोडक्ट फैमिली के आसपास बनाएँ
ऐसे स्टोर से शुरुआत करें जिसे आप निरीक्षण कर सकते हों और ऐसे वेरिएशन से जिसकी दृश्य कीमत आप जानते हों। प्रोडक्ट लिस्ट, सिंपल प्रोडक्ट और वेरिएबल प्रोडक्ट पाथ को अलग-अलग एक्सरसाइज़ करें, फिर संग्रहित पंक्तियों की तुलना रेंडर किए गए स्टोरफ्रंट से करें। जब आप हर फ़ील्ड और परिणाम को समझा सकें, तब मार्केट्स और सोर्स टेम्पलेट्स जोड़ें।
क्लाउड में WooCommerce वेरिएंट्स कैप्चर करने के लिए तैयार?
अपने WooCommerce एडॉप्टर को Agent Browser में चलाएँ और कीमत निर्यात करने से पहले चयनित वेरिएशन की जाँच करें।
आज ही साइन अप करें और पाएँ $5 in free credit — कोई क्रेडिट कार्ड ज़रूरी नहीं.
अपना $5 क्रेडिट क्लेम करें →FAQ
क्या WooCommerce के पास सार्वजनिक प्रोडक्ट्स रिसोर्स है?
WooCommerce Store API स्टोरफ्रंट प्रोडक्ट डेटा के लिए Products रिसोर्स का दस्तावेज़ बनाती है। संग्रह करने से पहले इसके नियमों और विशेष स्टोर की समर्थित और अधिकृत सतह की जाँच करें।
क्या हर WooCommerce थीम एक जैसे सेलेक्टर्स दिखाती है?
WooCommerce थीम्स और एक्सटेंशंस वेरिएशन कंट्रोल्स को अलग-अलग तरीके से रेंडर कर सकती हैं। वास्तविक लेबल्स और तैयार होने के संकेतों का निरीक्षण करें और हर एडॉप्टर को एक प्रतिनिधि फ़िक्चर से कवर करें।
क्या WooCommerce को स्क्रैप करने के लिए आपको प्रॉक्सी की ज़रूरत है?
जब अधिकृत अवलोकन में किसी विशेष नेटवर्क लोकेशन की आवश्यकता हो, तब लोकेशन-टारगेटेड प्रॉक्सी का उपयोग करें। लोकल स्टोर टेस्टिंग और अधिकृत फ़ीड्स इनके बिना भी काम कर सकती हैं।
जब संग्रह किसी चैलेंज या डिनाइड पेज तक पहुँचता है तो क्या होना चाहिए?
विफलता को रिकॉर्ड करें और स्रोत के एक्सेस नियमों का सम्मान करें। ज़रूरत पड़ने पर मालिक और काउंसल के साथ अनुमत दायरा, ट्रैफ़िक सीमाएँ और लागू नियम व शर्तें की पुष्टि करें।
क्या यह बिना AI एजेंट के चल सकता है?
Playwright निर्धारक कोड का उपयोग करके वेरिएंट्स चुन सकता है और रिकॉर्ड्स निकाल सकता है। सीमित संग्रह से शुरू करें और कन्सरेंसी को स्टोर की सहमत सीमा के भीतर रखें।
की के रूप में प्रोडक्ट स्लग होना चाहिए या वेरिएशन ID?
जहाँ उपलब्ध हो, स्टोर नेमस्पेस को उसके प्रोडक्ट या वेरिएशन ID के साथ उपयोग करें। मानव-पठनीय स्लग और पूर्ण वेरिएशन URL को कैप्चर साक्ष्य और रूटिंग जानकारी के रूप में संरक्षित रखें।