Puppeteer
Описание Puppeteer
Puppeteer – это библиотека JavaScript, которая предоставляет высокоуровневый API для управления Chrome или Firefox через протокол DevTools или WebDriver BiDi. Puppeteer по умолчанию работает в headless (без видимого пользовательского интерфейса), но может быть настроен для работы в видимом («headful») браузере.
Функции Puppeteer
Большинство вещей, которые вы можете делать вручную в браузере, можно сделать с помощью Puppeteer! Вот несколько примеров для начала:
- Автоматизация отправки форм, тестирование пользовательского интерфейса, ввод с клавиатуры и т. д.
- Создание автоматизированной среды тестирования с использованием новейших функций JavaScript и браузера.
- Захват временной шкалы трассировки вашего сайта для диагностики проблем с производительностью.
- Тестирование расширений Chrome.
- Создание снимков экрана и PDF-файлов веб-страниц.
- Сканирование SPA (одностраничного приложения) и генерация предварительно отрисованного контента (т. е. «SSR» (отрисовка на стороне сервера)).
Домашняя страница:
Автор: Mathias Bynens, Google Inc.
Лицензия: Apache-2.0 license
Справка по Puppeteer
Puppeteer запускается и управляется с помощью кода на JavaScript. Команды для запуска и выполнения действий в Puppeteer записывают в файлы с расширениями .js и запускают с помощью node.
Опции Puppeteer указываются как часть кода JavaScript в файле, который запускает Puppeteer. Для выполнения различных действий также используется код JavaScript, а именно различные классы Puppeteer и их методы.
Документация по опциям, классам и методам Puppeteer:
- https://pptr.dev/api
- https://pptr.dev/api/puppeteer.puppeteernode
- https://pptr.dev/category/introduction
Руководство по Puppeteer
Страница man отсутствует.
Примеры запуска Puppeteer
1. Пример создания скриншота веб-сайта
Создайте файл screenshot-fullpage.js и скопируйте в него следующий код:
const puppeteer = require('puppeteer'); async function run() { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto('https://suip.biz/?act=client-tls-fingerprinting'); await page.screenshot({ path: 'ja4-full.png', fullPage: true }); browser.close(); } run();
Запустите файл следующим образом:
node screenshot-fullpage
Вы получите скриншот всей страницы.
2. Пример получения DOM (HTML) веб-страницы
Создайте файл html-to-file.js со следующим содержимым:
const puppeteer = require('puppeteer'); async function run() { const browser = await puppeteer.launch(); const page = await browser.newPage(); const customUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; await page.setViewport({width: 1440, height: 3440}); await page.setUserAgent(customUserAgent); await page.goto('https://w-e-b.site/?act=client-tls-fingerprinting'); const html = await page.content(); const fs = require('fs'); fs.writeFile("test.htm", html, function(err) { if(err) { return console.log(err); } console.log("The file was saved!"); }); browser.close(); } run();
Запустите файл следующим образом:
node html
В результате запуска этой программы полученный с помощью Puppeteer исходный код страницы будет сохранён в файл test.htm.
3. Пример использования Puppeteer для извлечения все ссылок на картинки
Создайте файл extract-art-img.js со следующим содержимым:
const puppeteer = require('puppeteer'); async function run() { const browser = await puppeteer.launch(); const page = await browser.newPage(); const customUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'; await page.setViewport({width: 1440, height: 3440}); await page.setUserAgent(customUserAgent); await page.goto('https://hackware.ru/?p=19139'); const tags = await page.evaluate(() => { return Array.from(document.querySelectorAll('div > div.entrytext > p > a > img')) .map(heading => heading.src); }); for (const tag of tags) { console.log(tag); } browser.close(); } run();
Этот код покажет все ссылки на картинки из статьи на указанной странице.
Установка Puppeteer
Установка в Kali Linux
Начните с установки менеджера пакетов JavaScript — npm:
sudo apt install npm
Затем выполните следующую команду:
npm i puppeteer
Установка в BlackArch
Начните с установки менеджера пакетов JavaScript — npm:
sudo pacman -S npm
Затем выполните следующую команду:
npm i puppeteer
Установка в Ubuntu, Linux Mint, Debian
Начните с установки менеджера пакетов JavaScript — npm:
sudo apt update sudo apt install npm
Затем выполните следующую команду:
npm i puppeteer
Как обновить Puppeteer
Для обновления Puppeteer в любом дистрибутиве выполните следующую команду:
npm update
Скриншоты Puppeteer
Инструкции по Puppeteer
- Как пользоваться Puppeteer: установка и быстрый старт
- Работа с DOM в Puppeteer: как получить HTML код и извлечь различные теги (текст, картинки, ссылки)
- Продвинутая работа с DOM в Puppeteer: отключение JavaScript, загрузка HTML без захода на сайт, действие при ошибках, ожидание и прокрутка страницы
Comments are Closed