Кукловод, быстрый старт

Чтобы использовать Puppeteer в своем проекте, вам необходимо сначала установить его.

Монтаж

npm i puppeteer
# or "yarn add puppeteer"

Когда вы устанавливаете Puppeteer, он загружает последнюю версию Chromium (~170 МБ для Mac, ~282 МБ для Linux, ~280 МБ для Win), которая гарантированно будет работать с API. Чтобы пропустить загрузку, загрузить ее по другому пути или загрузить другой браузер, см. раздел Переменные среды .

кукловод-ядро

Начиная с версии 1.7.0 мы публикуем пакет puppeteer-core . Эта версия Puppeteer по умолчанию не загружает браузер.

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

puppeteer-core представляет собой облегченную версию Puppeteer для запуска существующей установки браузера или подключения к удаленной. Убедитесь, что установленная вами версия puppeteer-core совместима с браузером, к которому вы собираетесь подключиться.

См. puppeteer и puppeteer-core .

Применение

Puppeteer соответствует последней поддерживающей LTS- версии Node.

Puppeteer, вероятно, знаком людям, использующим другие среды тестирования браузеров. Вы создаете экземпляр Browser , открываете страницы, а затем манипулируете ими с помощью API 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×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, поэтому его API гарантированно работает «из коробки». Чтобы использовать Puppeteer с другой версией Chrome или Chromium, передайте путь к исполняемому файлу при создании экземпляра Browser :

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

Вы также можете использовать Puppeteer с Firefox Nightly (экспериментальная поддержка). См. Puppeteer.launch() для получения дополнительной информации.

Для дополнительной информации:

Создает новый профиль пользователя

Puppeteer создает собственный профиль пользователя браузера, который очищается при каждом запуске.

Следующие шаги

,

Чтобы использовать Puppeteer в своем проекте, вам необходимо сначала установить его.

Монтаж

npm i puppeteer
# or "yarn add puppeteer"

Когда вы устанавливаете Puppeteer, он загружает последнюю версию Chromium (~170 МБ для Mac, ~282 МБ для Linux, ~280 МБ для Win), которая гарантированно будет работать с API. Чтобы пропустить загрузку, загрузить ее по другому пути или загрузить другой браузер, см. раздел Переменные среды .

кукловод-ядро

Начиная с версии 1.7.0 мы публикуем пакет puppeteer-core . Эта версия Puppeteer по умолчанию не загружает браузер.

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

puppeteer-core представляет собой облегченную версию Puppeteer для запуска существующей установки браузера или подключения к удаленной. Убедитесь, что установленная вами версия puppeteer-core совместима с браузером, к которому вы собираетесь подключиться.

См. puppeteer и puppeteer-core .

Применение

Puppeteer соответствует последней поддерживающей LTS- версии Node.

Puppeteer, вероятно, знаком людям, использующим другие среды тестирования браузеров. Вы создаете экземпляр Browser , открываете страницы, а затем манипулируете ими с помощью API 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×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, поэтому его API гарантированно работает «из коробки». Чтобы использовать Puppeteer с другой версией Chrome или Chromium, передайте путь к исполняемому файлу при создании экземпляра Browser :

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

Вы также можете использовать Puppeteer с Firefox Nightly (экспериментальная поддержка). См. Puppeteer.launch() для получения дополнительной информации.

Для дополнительной информации:

Создает новый профиль пользователя

Puppeteer создает собственный профиль пользователя браузера, который очищается при каждом запуске.

Следующие шаги