Kuklacı hızlı başlangıç

Projenizde Puppeteer kullanmak için önce onu yüklemeniz gerekir.

Döşeme

npm i puppeteer
# or "yarn add puppeteer"

Puppeteer'ı yüklediğinizde, Chromium'un API ile çalışacağı kesin olan yeni bir sürümünü (~170 MB Mac, ~282 MB Linux, ~280 MB Win) indirir. İndirme işlemini atlamak, başka bir yola indirmek veya farklı bir tarayıcı indirmek için Ortam değişkenleri bölümüne bakın.

Kukla-çekirdek

1.7.0 sürümünden itibaren puppeteer-core paketini yayınlarız. Puppeteer'ın bu sürümü varsayılan olarak hiçbir tarayıcıyı indirmez.

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

puppeteer-core, mevcut bir tarayıcı yüklemesini başlatmak veya uzak bir tarayıcıya bağlanmak için Puppeteer'ın hafif bir sürümü olacak şekilde tasarlanmıştır. Yüklediğiniz puppeteer-core sürümünün bağlanmak istediğiniz tarayıcıyla uyumlu olduğundan emin olun.

Puppeteer ile puppeteer-core karşılaştırmasını inceleyin.

Kullanım

Puppeteer, Düğüm'ün en son bakım LTS sürümünü takip eder.

Puppeteer, diğer tarayıcı test çerçevelerini kullanan kişilere muhtemelen yabancıdır. Browser örneği oluşturur, sayfaları açar ve Puppeteer API'si ile bunları değiştirirsiniz.

Ekran görüntüsü kaydetme

Örneğin, https://example.com platformuna gidip ekran görüntüsünü example.png olarak kaydetmek için aşağıdaki kodu example.js hesabına kaydedin.

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, başlangıç sayfa boyutunu 800×600 piksel olarak ayarlar. Bu değer, ekran görüntüsü boyutunu tanımlar. Sayfa boyutu Page.setViewport() ile özelleştirilebilir.

PDF oluşturma

Dosyayı hn.js olarak kaydet.

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();
})();

Komut satırında komut dosyasını çalıştırın:

node hn.js

PDF oluşturma hakkında daha fazla bilgi için Page.pdf() sayfasını inceleyin.

Komut dosyasını sayfa bağlamında değerlendirin

Dosyayı get-dimensions.js olarak kaydet:

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();
})();

Komut satırında komut dosyasını çalıştırın:

node get-dimensions.js

Değerlendirme ve ilgili yöntemler (ör. evaluateOnNewDocument ve exposeFunction) hakkında daha fazla bilgi için JavaScript'i değerlendirme bölümüne bakın.

Varsayılan çalışma zamanı ayarları

Gözetimsiz modu kullanır

Puppeteer, Chromium'u gözetimsiz modda başlatır. Chromium'un tam sürümünü başlatmak için bir tarayıcıyı başlatırken headless seçeneğini ayarlayın:

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

Chromium'un paket halinde sunulan bir sürümünü çalıştırıyor

Varsayılan olarak Puppeteer, Chromium'un belirli bir sürümünü indirir ve kullanır. Böylece, API'sinin kullanıma hazır şekilde çalışacağı garanti edilir. Puppeteer'ı farklı bir Chrome veya Chromium sürümüyle kullanmak için Browser örneği oluştururken yürütülebilir dosyanın yolunu iletin:

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

Puppeteer'ı Firefox Nightly ile de kullanabilirsiniz (deneysel destek). Daha fazla bilgi için Puppeteer.launch() sayfasını inceleyin.

Daha fazla bilgi için:

Yeni bir kullanıcı profili oluşturur

Puppeteer her çalıştırmada temizlediği kendi tarayıcı kullanıcı profilini oluşturuyor.

Sonraki adımlar