Node JS + puppeteer + Excel - скриншоты сайтов

Цена договорная
04 декабря 2020, 14:39 • 3 отклика • 26 просмотров
Добрый день

Стоит задача делать качественные скриншоты множества сайтов через puppeteer.

1. Список сайтов находится в файле EXCEL
- первую строку не учитываем
- столбец А: ID (он же будет именем файла скриншота)
- столбец B: URL сайта

Сайтов в списке может быть до нескольких тысяч

2. Тестовая функция для создания скриншота
Тестировал варианты для максимального качества скриншотов. В итоге получилась функция с такими настройками.

async function getPicJPG() {
const browser = await puppeteer.launch(); //({headless: false})
const page = await browser.newPage();
await page.setViewport({width: 1600, height: 1200});
await page.goto(siteURL,{ waitUntil: 'networkidle2' });
await page.screenshot({path: DT + '__JPG.jpg', type: 'jpeg', quality: 100, fullPage: true});
await browser.close();
}


Задание

Написать программу для создания скриншотов. Модули, которые необходимо использовать:

1. puppeteer-extra-plugin-stealth
https://www.npmjs.com/package/puppeteer-extra-plugin-stealth

Для маскировки puppeteer под обычный браузер

2. Загрузка списка сайтов из EXCEL
- последовательное создание скриншотов по списку
- ID из EXCEL - это имя файла скриншота

Возможно, что подойдет плагин https://www.npmjs.com/package/excel

3. Обработка ошибок и лог в консоль
Успешность или неуспешность создания очередного скриншота должна отображаться в консоли
Иные ошибки также необходимо обрабатывать, чтобы процесс создания скриншотов был непрерывным

4. Возможность параллельного создания нескольких скриншотов (например, пачками по 5 или 10)
Для ускорения можно немного распараллелить процессы. Возможно, что подойдет https://github.com/thomasdondorf/puppeteer-cluster



В итоге:
Программа запускается через консоль. Берет список URL из EXCEL и начинает работу. ID из EXCEL - имя файла. Ошибки должны обрабатываться и не прерывать процессы. С помощью плагина stealth сам puppeteer маскируется.

Желательно организовать параллельное создание скриншотов.

Использоваться будет под Windows




Файлы
Отзывы
R50 5827202a6088f76c6d07a846c6ad5861
Заказчик
Рекомендую Алексея к сотрудничеству, профессионал своего дела.
~ 4 года назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
Отличный заказчик. Работать с ним одно удовольствие.
~ 4 года назад