Комментарии 13
Интересно было бы посмотреть на сравнение с Selenium.
Я пользовался и тем и тем, могу сравнить
Плюсы Puppeteer:
- Несет дистрибутив хрома внутри,
npm install puppeteer
ставит все что вам нужно. В случае с Selenium нужно ставить браузер самому - Быстрее работает за счет отсутствия лишних звеньев в цепи. Нет промежуточного Selenium server, все команды идут напрямую в браузер
- Больше функциональности: перехват запросов, экспорт в pdf, скриншот заданного селектора. Смотрите сами
Плюсы Selenium:
- Кросс-браузерность. Если вам нужно тестировать разные платформы, тут у Puppeteer нет шансов
- Байндинги не только к Javascript. Если ваш основной рабочий язык — не JS, с Puppeteer будет сложновато.
Несет дистрибутив хрома внутри
Боря, не обманывай людей, он несет внутри ссылки на скачивание Chrome с серверов Google. github.com/GoogleChrome/puppeteer/blob/master/utils/ChromiumDownloader.js#L33-L38 Чуваки наваяли HTTP клиента поверх готового JSON API, а также немного синтаксического сахара и теперь представляют это как панацею для проблем всего веб-тестирования. Вот такой вот очередной шум вокруг тривиального Javascript проекта.
Да, не совсем точно выразился, Хром автоматически скачивается при установке. Тем не менее все равно это отличается типичной установки Selenium, где браузер нужно ставить и обновлять самостоятельно. (Remote-версию с Selenium hub не рассматриваем, это совсем про другое).
представляют это как панацею для проблем всего веб-тестирования
Этого никто не говорил. Puppeteer заменяет PhantomJS, который больше не развивается. Для скраппинга сайтов, генерации PDF и тому подобных задач Puppeteer прекрасно подходит.
Ниша кросс-браузерного тестирования (особенно в Internet Explorer) еще надолго останется за Selenium, я так полагаю.
Есть пример как это сделать: https://github.com/GoogleChrome/puppeteer/blob/8717203fb245913bb93f12a1d38cb078641a5dfe/examples/proxy.js
Сам не пробовал, но скорее всего работает.
Оба работают через один и тот же DevTools protocol. Принципиально между инструментами разницы никакой.
Только Puppeteer разрабатывается официально Гуглом, а Chromeless сделали какие-то ноунейм ребята из стартапа. Статистика скачиваний говорит, что Puppeteer на порядок популярнее.
Учитывая эти факты, я бы не стал серьезно рассматривать Chromeless.
Мне кажется, или даже для примера копирование в качестве селектора всей вложенности — это перебор? Малейшее изменение структуры повлечет за собой поломку. Статья не об этом, но все же. Ну и на правах зануды туда же можно присовокупить выборку всех заголовков h1, в которую могут попасть не только названия книг.
За статью спасибо, любопытный инструмент.
(Win, Node 8.7.0) пробовал также посл версию из гита.
JavaScript, Node, Puppeteer: автоматизация Chrome и веб-скрапинг