Разработка программы для автоматизации процесса мониторинга цен на продукцию компании по сайтам дилеров (веб-скрапер).
Получил опыт проектирования ООП приложения, написания асинхронного кода на JavaScript (Promise, async, await), работы с библиотеками из npm (exceljs, puppeteer, puppeteer-cluster).
Успешно решил возникшие в ходе разработки проблемы, такие как:
- блокировка повторных запросов на сайт при большом количестве одновременных запросов от моей программы - использовал библиотеку puppeteer, чтобы имитировать действия пользователя в браузере chromium, организовал очередь из запросов с помощью библиотеки puppeteer-cluster.
- потеря данных после анализа страниц из-за большого количества асинхронных операций - написал универсальные функции для сбора данных, использовал Promise.all ()
Для решения поставленной задачи анализировал аналогичные решения, изучал техническую документацию к библиотекам на английском языке.
Задачу выполнил самостоятельно, все коммуникации с заказчиком вел сам.
Ознакомиться с публичной частью кода проекта можно здесь:
https://github.com/VadimVeberg/prices-scraper