Puppeteer क्विक स्टार्ट

अपने प्रोजेक्ट में Puppeteer का इस्तेमाल करने के लिए, पहले आपको उसे इंस्टॉल करना होगा.

इंस्टॉल करना

npm i puppeteer
# or "yarn add puppeteer"

Puppeteer को इंस्टॉल करने पर, यह Chromium का नया वर्शन डाउनलोड करता है (~170 एमबी Mac, ~282 एमबी Linux, ~280 एमबी Win), इस बात की गारंटी है कि यह एपीआई के साथ काम करेगा. डाउनलोड स्किप करने, किसी दूसरे पाथ में डाउनलोड करने या कोई दूसरा ब्राउज़र डाउनलोड करने के लिए, एनवायरमेंट वैरिएबल देखें.

पपीटीयर-कोर

1.7.0 वर्शन के बाद से, हम puppeteer-core पैकेज को पब्लिश करते हैं. Puppeteer के इस वर्शन पर डिफ़ॉल्ट रूप से कोई भी ब्राउज़र डाउनलोड नहीं होता.

npm i puppeteer-core
# or "yarn add puppeteer-core"

मौजूदा ब्राउज़र इंस्टॉलेशन को लॉन्च करने या किसी रिमोट से कनेक्ट करने के लिए, puppeteer-core को Puppeteer का लाइटवेट वर्शन बनाया गया है. पक्का करें कि इंस्टॉल किए गए puppeteer-core का वर्शन उस ब्राउज़र के साथ काम करता है जिससे आपको कनेक्ट करना है.

कठपुतली बनाम कठपुतली-कोर-कोर देखें.

इस्तेमाल का तरीका

Puppeteer, Node के रखरखाव एलटीएस वर्शन के सबसे नए वर्शन को फ़ॉलो करता है.

Puppeteer को ऐसे लोग जानते हैं जो ब्राउज़र के दूसरे टेस्टिंग फ़्रेमवर्क का इस्तेमाल करते हैं. आप Browser का एक इंस्टेंस बनाते हैं, पेज खोलते हैं, और फिर Puppeteer के एपीआई की मदद से उनमें बदलाव करते हैं.

स्क्रीनशॉट सेव करें

उदाहरण के लिए, https://example.com पर जाने और स्क्रीनशॉट को example.png के तौर पर सेव करने के लिए, इस कोड को example.js में सेव करें.

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: 'example.png' });

  await browser.close();
})();

Puppeteer पेज का शुरुआती साइज़ 800×600px पर सेट करता है, जो स्क्रीनशॉट का साइज़ तय करता है. पेज का साइज़ Page.setViewport() की मदद से अपनी पसंद के मुताबिक बनाया जा सकता है.

PDF बनाना

फ़ाइल को hn.js के तौर पर सेव करें.

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://news.ycombinator.com', {
    waitUntil: 'networkidle2',
  });
  await page.pdf({ path: 'hn.pdf', format: 'a4' });

  await browser.close();
})();

कमांड लाइन पर स्क्रिप्ट चलाएं:

node hn.js

PDF बनाने के बारे में ज़्यादा जानकारी के लिए, Page.pdf() देखें.

पेज के हिसाब से स्क्रिप्ट का आकलन करना

फ़ाइल को get-dimensions.js के तौर पर सेव करें:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');

  // Get the "viewport" of the page, as reported by the page.
  const dimensions = await page.evaluate(() => {
    return {
      width: document.documentElement.clientWidth,
      height: document.documentElement.clientHeight,
      deviceScaleFactor: window.devicePixelRatio,
    };
  });

  console.log('Dimensions:', dimensions);

  await browser.close();
})();

कमांड लाइन पर स्क्रिप्ट चलाएं:

node get-dimensions.js

आकलन करने और उससे जुड़े तरीकों, जैसे कि evaluateOnNewDocument और exposeFunction के बारे में ज़्यादा जानकारी के लिए, JavaScript का आकलन करें देखें.

रनटाइम की डिफ़ॉल्ट सेटिंग

बिना ग्राफ़िक यूज़र इंटरफ़ेस वाले ब्राउज़र मोड का इस्तेमाल करता है

Puppeteer ने Chromium को हेडलेस मोड में लॉन्च किया. Chromium का फ़ुल वर्शन लॉन्च करने के लिए, ब्राउज़र को लॉन्च करते समय headless विकल्प सेट करें:

const browser = await puppeteer.launch({ headless: false }); // default is true

Chromium के बंडल किए गए वर्शन पर काम करता है

डिफ़ॉल्ट रूप से, Puppeteer ने Chromium के खास वर्शन को डाउनलोड और इस्तेमाल किया. इसलिए, उसका एपीआई हर तरह से काम करेगा. Chrome या Chromium के किसी दूसरे वर्शन के साथ Puppeteer का इस्तेमाल करने के लिए, Browser इंस्टेंस बनाते समय एक्ज़ीक्यूटेबल पाथ में पास करें:

const browser = await puppeteer.launch({ executablePath: '/path/to/Chrome' });

आप Firefox Nightly (प्रयोग के तौर पर उपलब्ध) के साथ भी Puppeteer का इस्तेमाल कर सकते हैं. ज़्यादा जानकारी के लिए, Puppeteer.launch() पर जाएं.

अधिक जानकारी के लिए:

नई उपयोगकर्ता प्रोफ़ाइल बनाता है

Puppeteer ने अपनी खुद की ब्राउज़र उपयोगकर्ता प्रोफ़ाइल बनाई जिसे हर बार चलाने पर वह साफ़ हो जाता है.

अगले चरण