دليل البدء السريع للدمى المتحركة

لاستخدام Puppeteer في مشروعك، يجب عليك أولاً تثبيته.

تثبيت

npm i puppeteer
# or "yarn add puppeteer"

عند تثبيت Puppeteer، ينزِّل إصدارًا حديثًا من Chromium (حوالي 170 ميغابايت Mac، حوالى 282 ميغابايت Linux، وحوالي 280 ميغابايت Win) يضمن توافقه مع واجهة برمجة التطبيقات. لتخطّي عملية التنزيل، أو التنزيل في مسار آخر، أو تنزيل متصفّح آخر، راجع متغيرات البيئة.

محرك الدمى

يتم نشر حزمة puppeteer-core منذ الإصدار 1.7.0. لا يقوم هذا الإصدار من Puppeteer بتنزيل أي متصفح بشكل افتراضي.

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

تم تصميم puppeteer-core ليكون إصدارًا خفيفًا من Puppeteer لبدء تثبيت متصفح حالي أو للاتصال بمتصفّح عن بُعد. يجب أن يكون إصدار puppeteer-core الذي ثبّته متوافقًا مع المتصفح الذي تريد الاتصال به.

ويمكنك الاطّلاع على مقالة puppeteer مقابل puppeteer Core.

الاستخدام

يتّبع Puppeteer أحدث إصدار من الدعم الطويل الأمد (LTS) للصيانة من Node.

من المرجح أن يكون 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

راجع Page.pdf() لمزيد من المعلومات عن إنشاء ملفات 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.

إعدادات وقت التشغيل التلقائية

يتم استخدام وضع التشغيل بلا واجهة مستخدم رسومية.

تشغّل Puppeteer Chromium في وضع بلا واجهة مستخدم رسومية. لتشغيل إصدار كامل من Chromium، اضبط الخيار headless عند تشغيل المتصفّح:

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

يعمل بإصدار مجمّع من Chromium

بشكل تلقائي، ينزّل Puppeteer إصدارًا محددًا من Chromium ويستخدمه لضمان عمل واجهة برمجة التطبيقات بشكل سليم. لاستخدام Puppeteer مع إصدار مختلف من Chrome أو Chromium، مرر في مسار الملف التنفيذي عند إنشاء مثيل Browser:

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

يمكنك أيضًا استخدام Puppeteer مع Firefox Nightly (الدعم التجريبي). يمكنك الاطّلاع على Puppeteer.launch() للحصول على مزيد من المعلومات.

لمزيد من المعلومات:

ينشئ ملفًا شخصيًا جديدًا للمستخدم

ينشئ Puppeteer ملفًا شخصيًا خاصًا بالمستخدم في المتصفح والذي ينظفه في كل مرة.

الخطوات التالية