कठपुतली ब्राउज़र क्लास की ग्रेट लर्निंग गाइड (ट्यूटोरियल 8)

कठपुतली एक ओपन-सोर्स नोड जेएस लाइब्रेरी है और इसका उपयोग वेब ऑटोमेशन के साथ-साथ वेब स्क्रैपिंग टूल के रूप में भी किया जाता है। पपेटियर के साथ काम शुरू करने के लिए आपको जावास्क्रिप्ट और HTML DOM संरचना की बुनियादी समझ की आवश्यकता है। यह कठपुतली ट्यूटोरियल श्रृंखला नीचे दिए गए खंडों में वितरित की गई है जो आपको कठपुतली के साथ काम शुरू करने के लिए सभी आवश्यक अनुभव से लैस करेगी। 

कठपुतली ट्यूटोरियल

Tosca ट्यूटोरियल # 1: कठपुतली अवलोकन

Tosca ट्यूटोरियल # 2: कठपुतली पर्यावरण चर

Tosca ट्यूटोरियल # 3: Puppeteer वेब स्क्रैपिंग और Puppeteer टेस्ट स्वचालन अवलोकन

Tosca ट्यूटोरियल # 4: कठपुतली स्थापित करें

Tosca ट्यूटोरियल # 5: नमूना Puppeteer परियोजना

Tosca ट्यूटोरियल # 6: कठपुतली स्वचालन परीक्षण

Tosca ट्यूटोरियल # 7: कठपुतली वर्ग

Tosca ट्यूटोरियल # 8: कठपुतली ब्राउज़र क्लास

Tosca ट्यूटोरियल #9: कठपुतली पेज क्लास

इस "कठपुतली ब्राउज़र क्लास" ट्यूटोरियल में, हम नीचे उल्लिखित कक्षाओं के बारे में गहराई से समझेंगे, जिसमें महत्वपूर्ण नामस्थान, ईवेंट और अन्य विस्तृत तरीके शामिल हैं, जो पपेटियर वेब स्क्रैपिंग तकनीकों के साथ काम करने के लिए आवश्यक हैं।  

कठपुतली चलानेवाला BrowserFetcher क्लास

Puppeteer BrowserFetcher क्लास का उपयोग विभिन्न ब्राउज़र संस्करणों को डाउनलोड करने और प्रबंधित करने के लिए किया जाता है। BrowserFetcher क्लास एक संशोधन स्ट्रिंग पर काम करता है जो क्रोम ब्राउज़र के संस्करण को निर्दिष्ट करता है। संशोधन संख्या से प्राप्त किया जा सकता है यहाँ उत्पन्न करें। फ़ायरफ़ॉक्स के मामले में, यह रात को संस्करण संख्या के आधार पर ब्राउज़र को डाउनलोड करता है।

नीचे दिए गए उदाहरण से पता चलता है कि कैसे डाउनलोड करें और क्रोम ब्राउज़र लॉन्च करें BrowserFetcher वर्ग का उपयोग करना।

कॉन्स्ट ब्राउज़रFetcher = कठपुतली.createBrowserFetcher (); const RevInfo = प्रतीक्षा ब्राउज़रFetcher.download ('766890'); कॉन्स्ट ब्राउज़र क्रोम = कठपुतली का इंतजार। लॉन्च ({निष्पादन योग्यपैथ: RevInfo.executablePath})

BrowserFetcher वर्ग के एक और उदाहरण के साथ एक साथ काम करना संभव नहीं है। BrowserFetcher क्लास के अक्सर उपयोग किए जाने वाले तरीकों को अगले अनुभागों में समझाया गया है।

कठपुतली चलानेवाला BrowserFetcher क्लास - तरीके:

नीचे दिए गए तरीके कठपुतली ब्राउज़र ब्राउज़र श्रेणी में उपलब्ध हैं,

BrowserFetcher.canDownload (संशोधन) - ब्राउजर के रिवीजन नंबर की मदद से यह तरीका हेडर रिक्वेस्ट के एक हिस्से के रूप में निर्दिष्ट ब्राउजर की उपलब्धता की जांच करता है। विधि उपलब्धता के आधार पर बूलियन मान (सही या गलत) लौटाती है।

const boolVar = browserFetcher.canDownload ('766890');

BrowserFetcher.download (संशोधन [, प्रगतिकॉलबैक]) - यह विधि संशोधन संख्या तर्क का उपयोग करके क्रोम ब्राउज़र को डाउनलोड करती है। यहां प्रगतिकॉलबैक एक वैकल्पिक तर्क है जो फ़ंक्शन को दो तर्कों - डाउनलोड बाइट्स और कुल बाइट्स के साथ कहता है। यह विधि एक संशोधन वस्तु के रूप में संशोधन की जानकारी लौटाती है।

const RevInfo = browserFetcher.download ('766890');

BrowserFetcher.host () - यह होस्टनाम लौटाता है, जिसका उपयोग ब्राउज़र डाउनलोड करने के लिए किया जाता है।

const hostName = browserFetcher.host ();

BrowserFetcher.localRevisions () - यह उन सभी संशोधनों की सूची देता है जो स्थानीय प्रणाली में उपलब्ध हैं।

const RevList = browserFetcher.localRevisions ();

BrowserFetcher.platform () - यह होस्ट का प्लेटफ़ॉर्म नाम लौटाता है, जो किसी भी मैक, लिनक्स, win32 या win64 का होगा।

const platformName = browserFetcher.platform ();

BrowserFetcher.product () - यह ब्राउजर का नाम देता है जो क्रोम या फायरफॉक्स होगा

const productName = browserFetcher.product ();

BrowserFetcher.remove (संशोधन) - इस विधि का उपयोग वर्तमान उत्पाद / ब्राउज़र के लिए निर्दिष्ट संशोधन को हटाने के लिए किया जाता है। यह वादा वस्तु लौटाता है, जो प्रक्रिया पूरी होने के बाद हल हो जाती है।

const RevInfo = browserFetcher.remove ('766890');

BrowserFetcher.revisionInfo (संशोधन) - यह संशोधन की जानकारी पर एक वस्तु लौटाएगा जिसमें संशोधन, फ़ोल्डरपाठ, निष्पादन योग्यपथ, यूआरएल, स्थानीय और उत्पाद शामिल हैं।

const RevInfo = browserFetcher.revisionInfo ('766890');

संदर्भ: क्लिक करें यहाँ उत्पन्न करें BrowserFetcher क्लास के तरीकों के बारे में अधिक जानने के लिए।

कठपुतली चलानेवाला ब्राउज़र क्लास

कठपुतली को लॉन्च करने या उपयोग करने वाले ब्राउज़र से कनेक्ट होने पर प्यूपेटियर ब्राउज़र क्लास बनाया जाता है कठपुतली। लॉन्च or कठपुतली.कनेक्ट तरीकों.

नीचे दिए गए उदाहरण से पता चलता है कि ब्राउज़र संदर्भ का उपयोग करके ब्राउज़र वर्ग और पेज कैसे बनाया जाए।

कास्ट कठपुतली = आवश्यकता ('कठपुतली'); (async () => { const browserChrome = प्रतीक्षा कठपुतली.लॉन्च (); const pageChrome = प्रतीक्षा ब्राउज़रChrome.newPage (); प्रतीक्षा पृष्ठChrome.goto ('https://www.google.com'); प्रतीक्षा ब्राउज़रChrome.close( ); }) ();

ब्राउज़र अनुभाग की अक्सर उपयोग की जाने वाली घटनाएं और तरीके अगले अनुभाग में बताए गए हैं।

कठपुतली चलानेवाला ब्राउज़र क्लास - ईवेंट:

नीचे दी गई घटनाएँ ब्राउज़र क्लास में उपलब्ध हैं,

  • Browser.on ('डिस्कनेक्ट') - ब्राउज़र बंद होने या क्रैश होने पर यह घटना शुरू हो जाती है ब्राउज़र.डिस्कनेक्ट विधि कहा जाता है.
  • browser.on ('लक्षित') - यह घटना तब शुरू होती है जब लक्ष्य का यूआरएल बदल गया है।
  • browser.on ('targetcreated') - विधि द्वारा नया टैब या विंडो में नया पेज खोले जाने पर यह घटना शुरू हो जाती है ब्राउजर.न्यूपेजP or window.open.
  • browser.on ('targetdestroyed') - जब लक्ष्य नष्ट हो जाता है, तो यह घटना शुरू हो जाती है, अर्थात पृष्ठ बंद हो जाता है।

कठपुतली चलानेवाला ब्राउज़र क्लास - तरीके:

ब्राउज़र कक्षा में निम्न विधियाँ उपलब्ध हैं,

  • Browser.browserContexts () - यह सभी ब्राउज़र संदर्भों की सूची देता है। एक नए लॉन्च किए गए ब्राउज़र के लिए, यह विधि सिंगल ब्राउज़र कॉन्टेक्स्ट इंस्टेंस को वापस कर देगी।
  • browser.close () - इस विधि का उपयोग सभी खुले क्रोमियम-ब्राउज़र पृष्ठों को बंद करने के लिए किया जाता है। 

ब्राउज़र का इंतजार करें। क्लोज़ ();

  • Browser.createIncognitoBrowserContext () - यह गुप्त ब्राउज़र संदर्भ बनाता है / देता है, जो कभी भी कुकीज़ या कैश को किसी अन्य ब्राउज़र संदर्भों के साथ साझा नहीं करेगा। नीचे दिए गए उदाहरण में, वेब पेज (google) गुप्त मोड में खोला जाएगा।

(async () => {
  const chromeBrowser = कठपुतली का इंतजार करना। पंच ();
  // नया गुप्त ब्राउज़र संदर्भ बनाएँ।
  const संदर्भ = प्रतीक्षारत chromeBrowser.createIncognitoBrowserContext ();
  const पेजक्रोम = प्रतीक्षारत संदर्भ ।newPage ();
  प्रतीक्षित पृष्ठChrome.goto ('https://www.google.com');
}) ();

  • Browser.defaultBrowserContext () - यह डिफ़ॉल्ट ब्राउज़र संदर्भ देता है जिसे नष्ट या बंद नहीं किया जा सकता है।
  • Browser.disconnect () - यह ब्राउज़र को कठपुतली से डिस्कनेक्ट कर देगा। लेकिन, इस मामले में ब्राउज़र चालू रहेगा।
  • Browser.isConnected () - यह विधि जाँचती है कि ब्राउज़र जुड़ा हुआ है या नहीं। यह चेक के आधार पर बूलियन मान लौटाएगा।

const boolFlag = wait browser.isConnected ();

  • browser.newPage () - यह विधि एक नया पेज बनाएगी और पेज का उदाहरण लौटाएगी।

const page = wait browser.newPage ();

  • browser.pages () - यह विधि उन सभी पृष्ठों की सूची लौटाती है जो वर्तमान में खुले राज्य में हैं।

const पेजलिस्ट = browser.pages () की प्रतीक्षा करें;

  • browser.process () - यह विधि बनाई गई ब्राउज़र प्रक्रिया को वापस करती है। यदि ब्राउज़र का उपयोग करके बनाया गया है Browser.connect विधि, और यह एक शून्य मान लौटाएगा।
  • Browser.target () - यह विधि ब्राउज़र से जुड़े लक्ष्य को लौटा देती है।

const target = wait browser.target ();

  • Browser.targets () - यह ब्राउज़र के भीतर सभी सक्रिय लक्ष्यों की सूची देता है।

const targetList = browser.targets () का इंतजार करें;

  • Browser.userAgent () - यह ब्राउज़र के मूल एजेंट के बारे में वादा वस्तु लौटाता है।
  • Browser.version () - यह 'HeadlessChrome / xx' के प्रारूप में ब्राउज़र के संस्करण को लौटाता है.x.xxxx.x 'हेडलेस क्रोम और' क्रोम / xx के लिए.x.xxxx.x 'नॉन हेडलेस क्रोम के लिए। भविष्य के रिलीज़ में प्रारूप बदल सकता है।
  • browser.waitForTarget (विधेय [, विकल्प]) - यह सभी ब्राउज़र संदर्भों में खोज करेगा और लक्ष्य की प्रतीक्षा करेगा।

प्रतीक्षा पृष्ठChrome.evaluate(() => window.open('https://techiescience.com/'));
const newWindowTarget = wait ब्राउज़र.waitForTarget(target => target.url() === 'https://techiescience.com/');

  • ब्राउज़रवॉइंट पॉइंट () - यह ब्राउजर के वेब सॉकेट यूआरएल को लौटाता है।

const wsUrl = wait browser.wsEndPoint ();

संदर्भ: क्लिक करें यहाँ उत्पन्न करें ब्राउज़र वर्ग की घटनाओं और विधियों के बारे में अधिक जानने के लिए।

कठपुतली चलानेवाला BrowserContext क्लास

BrowserContext वर्ग कई ब्राउज़र इंस्टेंसेस को संचालित करने में मदद करता है। ब्राउज़र इंस्टेंस लॉन्च करने के बाद, डिफ़ॉल्ट रूप से, एक सिंगल ब्राउज़र कॉन्टेक्स्ट का उपयोग किया जाता है।  ब्राउज़रक्रोम।नया पृष्ठ() विधि डिफ़ॉल्ट BrowserContext वर्ग ऑब्जेक्ट में एक पेज बनाता है। यदि कोई वेब पेज दूसरे पेज को इनवॉइस करता है, तो नया पेज पैरेंट पेज के ब्राउजन कॉन्टेक्स्ट का होना चाहिए। यहां, नया पेज बनाकर उपयोग किया जा सकता है la window.open () विधि. 

नीचे दिए गए उदाहरण में, Puppeteer 'गुप्त' मोड में एक ब्राउज़र संदर्भ बनाने की क्षमता रखता है। 'गुप्त' ब्राउज़र संदर्भ भंडारण में कोई डेटा नहीं लिखता है।

// गुप्त ब्राउज़र संदर्भ निर्माण कॉन्स्ट संदर्भIncognito = प्रतीक्षा ब्राउज़रChrome.createIncognitoBrowserContext (); // ब्राउज़र संदर्भ के माध्यम से नया पृष्ठ निर्माण। कॉन्स्ट पेज क्रोम = प्रतीक्षित संदर्भIncognito.newPage (); प्रतीक्षा पृष्ठChrome.goto('https://www.google.com'); // करीबी संदर्भ उपयोग के बाद संदर्भ का इंतजार कर रहा है। बंद करें ();

BrowserContext क्लास की अक्सर उपयोग की जाने वाली घटनाओं और तरीकों को अगले भाग में समझाया गया है।

कठपुतली चलानेवाला BrowserContext क्लास - ईवेंट्स:

नीचे दी गई घटनाएँ ब्राउज़रकनेक्ट क्लास में उपलब्ध हैं,

  • BrowserContext.on (लक्षित) - इस घटना को ट्रिगर किया जाता है जब ब्राउज़र संदर्भ के भीतर लक्ष्य का यूआरएल बदल गया है।
  • BrowserContext.on (लक्षित) - ब्राउज़र प्रसंग के अंदर निर्माण के बाद यह घटना शुरू हो जाती है। विधियों window.open और BrowserContext.newPage इस घटना के लिए जिम्मेदार हैं।
  • BrowserContext.on ('targetdestroyed') - यह घटना तब चालू होती है जब ब्राउज़र संदर्भ में लक्ष्य नष्ट हो जाता है।

कठपुतली चलानेवाला BrowserContext क्लास - तरीके:

नीचे दिए गए तरीके ब्राउज़रकनेक्ट क्लास में उपलब्ध हैं,

  • BrowserContext.browser () - यह विधि ब्राउज़र ऑब्जेक्ट को लौटाती है जो ब्राउज़र संदर्भ के भीतर उपलब्ध है।
  • BrowserContext.clearPermissionOverrides () - यह विधि ब्राउज़र के संदर्भ से सभी अनुमति को हटा देती है। नीचे दिए गए उदाहरण से पता चलता है कि इस विधि का उपयोग कैसे किया जाता है - 

const BrowserContext = browser.defaultBrowserContext ();
BrowserContext.overridePims ('https://www.google.com', ['क्लिपबोर्ड-रीड']];
BrowserContext.clearPermissionOverrides ();

  • BrowserContext.close () - इस विधि का उपयोग ब्राउज़र संदर्भ को बंद करने या नष्ट करने के लिए किया जाता है। ब्राउज़र संदर्भ के भीतर उपलब्ध सभी ब्राउज़र बंद हो जाएंगे।

browserContext.close ();

  • BrowserContext.isIncognito () - इस विधि का उपयोग यह जांचने के लिए किया जाता है कि ब्राउज़र 'गुप्त' मोड में बनाया गया है या नहीं। यह ब्राउज़र मोड के आधार पर एक बूलियन मान (सही - गुप्त मोड या गलत - गैर-गुप्त मोड) लौटाता है। डिफ़ॉल्ट रूप से, किसी भी ब्राउज़र को 'गैर-गुप्त' मोड में लगाया जाता है।

const boolIsIncognito = browserContext.isIncognito ();

  • BrowserContext.newPage () - इस विधि का उपयोग उसी ब्राउज़रकनेक्ट में एक नया पेज बनाने के लिए किया जाता है।

BrowserContext.newPage ();

  • BrowserContext.overridePims (मूल, अनुमति) - इस पद्धति का उपयोग मूल, यानी लक्ष्य यूआरएल को निर्दिष्ट अनुमति देने के लिए किया जाता है। अनुदान के लिए उपलब्ध विभिन्न अनुमतियाँ हैं -
  • 'जियोलोकेशन'
  • 'मिडी-ससेक्स' (सिस्टम-अनन्य मिडी)
  • 'मिडी'
  • 'धक्का दें'
  • 'कैमरा'
  • 'सूचनाएं'
  • 'माइक्रोफोन'
  • 'एम्बिएंट लाइट सेंसर'
  • 'एक्सीलरोमीटर'
  • 'पृष्ठभूमि-सिंक'
  • 'जाइरोस्कोप'
  • 'पहुंच-घटनाएँ'
  • 'क्लिपबोर्ड-रीड'
  • 'मैग्नेटोमीटर'
  • 'क्लिपबोर्ड-राइट'
  • 'पेमेंट-हैंडलर'

नीचे दिए गए उदाहरण से पता चलता है कि अनुमति कैसे दी जाए -

const BrowserContext = browser.defaultBrowserContext ();
ब्राउज़र का इंतजार करें

  • BrowserContext.pages () - यह विधि ब्राउज़र संदर्भ में उपलब्ध सभी खुले पृष्ठों की सूची लौटाती है। कोई भी दृश्यमान पृष्ठ यहां सूचीबद्ध नहीं किया जाएगा।

const OpenPageList = browserContext.pages ();

  • BrowserContext.targets () - यह विधि ब्राउज़र संदर्भ में उपलब्ध सभी सक्रिय लक्ष्यों की सूची लौटाती है। कोई भी दृश्यमान पृष्ठ यहां सूचीबद्ध नहीं किया जाएगा।

const activeTargetList = browserContext.targets ();

  • BrowserContext.waitForTarget (विधेय [, विकल्प]) - इस विधि का उपयोग किसी लक्ष्य के प्रकट होने के लिए प्रतीक्षा करने के लिए किया जाता है और लक्ष्य वस्तु को लौटा दिया जाता है। तर्क, 'विधेय' मूल रूप से प्रत्येक लक्ष्य के लिए एक फ़ंक्शन कॉल है। इसके अलावा, वैकल्पिक रूप से, हम कुछ कॉन्फ़िगरेशन मानों जैसे टाइमआउट को दूसरे तर्क के रूप में पास कर सकते हैं।
प्रतीक्षा पृष्ठChrome.evaluate(() => window.open('https://www.google.com/')); const newWindowTarget = प्रतीक्षा ब्राउज़रContext.waitForTarget(target => target.url() === 'https://www.google.com/');

संदर्भ: क्लिक करें यहाँ उत्पन्न करें BrowserContext वर्ग की घटनाओं और विधियों पर अधिक पढ़ने के लिए।

निष्कर्ष:

इस "Puppeteer Browser Class" ट्यूटोरियल में, हमने BrowserFetcher क्लास, BrowserContext क्लास और Browser क्लास की व्याख्या की है जिसमें महत्वपूर्ण नामस्थान (यदि कोई हो), ईवेंट (यदि कोई हो), और वे विधियाँ जो अक्सर Puppeteer वेब स्क्रैपिंग तकनीकों में उपयोग की जाती हैं उदाहरण। अगले लेख में, हम पेज, फ्रेम और डायलॉग क्लास की व्याख्या करेंगे।

एक टिप्पणी छोड़ दो