Какой из безголовых я выбираю? - PullRequest
0 голосов
/ 10 июля 2019

Мы использовали phantomjs в предыдущие дни для создания pdf с помощью серверного инструмента принца.В настоящее время нам нравится менять браузер без головы с phantomjs на другой.

Я исследую, какой из них быстро отображает и фантомы, и кукловода.В моем случае приложение Reporting для генерации PDF, я тестирую его только с puppeteer и phantomjs.phantomjs быстро обрабатывает сравнение HTML с кукловодом.

А потом я изучаю опции google-chrome-headless для создания PDF.Это похоже на встроенные модули приложения браузера Chrome.Я работаю с приложением nodejs.Я использую приведенную ниже команду из командной строки

chrome --headless --disable-gpu --print-to-pdf <src_url>

Я заметил параметры --disable-gpu, другие инструменты не имеют его.

  • Какэта опция отличается от двух других инструментов браузера без заголовка (phantomjs, puppeteer)?
  • Какой инструмент можно использовать для создания PDF-файлов?

1 Ответ

1 голос
/ 10 июля 2019

Вот что делают эти инструменты,

  • phantomJS - это набор Headless WebKit с возможностью создания сценариев. Похож на хром браузер. Это устарело, и проект заархивирован.
  • chromium : Chromium - это проект браузера Google с открытым исходным кодом. Это полностью функциональный браузер сам по себе и предоставляет подавляющее большинство кода для браузера Google Chrome.
  • chromium-headless : Headless Chrome поставляется в Chrome 59. Это способ запуска браузера Chrome в автономной среде. По сути, работает Chrome без хрома! Он объединяет все современные функции веб-платформы, предоставляемые Chromium и механизмом рендеринга Blink, в командную строку.
  • Puppeteer : Puppeteer - это библиотека узлов, которая предоставляет API высокого уровня для управления Chrome или Chromium по протоколу DevTools. По умолчанию кукловод работает без головы, но может быть настроен для работы с полным (без заголовка) Chrome или Chromium.

Вы можете управлять экземпляром хрома и хрома без головы с помощью кукловода. Конечно, это позволит вам предоставлять аргументы и генерировать PDF с использованием этого API.

Вы можете управлять одним и тем же API, используя Chrome CLI и Puppeteer.

Вот как можно использовать хром без заголовка для создания PDF-файла веб-сайта.

chrome --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/

Вот то же самое, используя кукловода,

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.chromestatus.com/');
  await page.pdf({path: 'chromestatus.pdf', format: 'A4'});
  await browser.close();
})();
...