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:
- Chromium ile Chrome Arasındaki Fark Nedir? How-To Geek'ten
- Linux kullanıcıları için geçerli olan bazı farklılıklar Chromium Dokümanlarında açıklanmıştır.
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
- Gözetimsiz Chrome hakkında daha fazla bilgi edinin.
- Örnekleri inceleyin.