התחלה מהירה של ה-Puppeteer

כדי להשתמש ב-Puppeteer בפרויקט, קודם צריך להתקין אותו.

התקנה

npm i puppeteer
# or "yarn add puppeteer"

כשמתקינים את Puppeteer, הוא מוריד גרסה עדכנית של Chromium (~170MB Mac, ~282MB Linux, ~280MB Win) עם התחייבות לפעול עם ה-API. במאמר משתני סביבה מוסבר איך לדלג על ההורדה, להוריד את הנתונים לנתיב אחר או להוריד דפדפן אחר.

דמות בובת ראווה

החל מגרסה 1.7.0, אנחנו מפרסמים את חבילת puppeteer-core. כברירת מחדל, בגרסה הזו של Puppeteer לא מתבצעת הורדה של אף דפדפן.

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

puppeteer-core מיועד להיות גרסה קלה של Puppeteer להפעלה של התקנה קיימת של דפדפן או להתחברות למכשיר מרוחק. חשוב לוודא שהגרסה של ה-Puppeteer-Core שמתקינים תואמת לדפדפן שאליו רוצים להתחבר.

למידע נוסף, אפשר לעיין בקטע 'בובתהם' לעומת 'בובת בובות'.

Usage

Puppeteer פועלת בהתאם לגרסת LTS לתחזוקה העדכנית ביותר של הצומת.

סביר להניח שה-Puppeteer מוכר לאנשים שמשתמשים במסגרות אחרות לבדיקת דפדפנים. יוצרים מכונה של Browser, פותחים דפים ולאחר מכן משנים אותם באמצעות Puppeteer's API.

שמירת צילום מסך

לדוגמה, כדי לעבור אל 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×600 פיקסלים, שמגדיר את גודל צילום המסך. אתם יכולים להתאים אישית את גודל הדף באמצעות 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

במאמר הערכת JavaScript תוכלו למצוא מידע נוסף על שיטות הערכה ושיטות קשורות, כמו evaluateOnNewDocument ו-exposeFunction.

הגדרות ברירת מחדל של זמן ריצה

שימוש במצב 'דפדפן ללא GUI'

Puppeteer מפעילה את Chromium במצב ללא אוזניות. כדי להפעיל גרסה מלאה של Chromium, צריך להגדיר את האפשרות headless כשמפעילים דפדפן:

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

מפעיל גרסה של Chromium בחבילה

כברירת מחדל, האפליקציה Puppeteer מורידה גרסה ספציפית של Chromium ומשתמשת בה, כך שמובטח שה-API שלו יפעל באופן מיידי. כדי להשתמש ב-Puppeteer בגרסה אחרת של Chrome או Chromium, צריך להעביר בנתיב של קובץ ההפעלה כשיוצרים מופע Browser:

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

ניתן גם להשתמש ב-Puppeteer עם Firefox Nightly (תמיכה ניסיונית). למידע נוסף, ראו Puppeteer.launch().

לקבלת מידע נוסף:

יוצר פרופיל משתמש חדש

ה-Puppeteer יוצר פרופיל משתמש בדפדפן משלו שהוא מנקה בכל הפעלה.

השלבים הבאים