Sento Sango - Portfolio

UniParser

Дата разработки: примерно 2014 год

Описание

Веб-приложение (локально разворачиваемое на ПК) для собственных нужд. Упрощало разработку парсеров контента, обработку полученных данных, А также, позволяло непосредственно запускать последовательность разных этапов этого парсинга и обработки и наблюдать за прогрессом в удобном интерактивном веб-интерфейсе.

После разработки множества похожих друг на друга одноразовых php-скриптов для парсинга тех или иных сайтов, решил, что было бы логично один раз написать какой-то базовый комплект php-утилит, чтобы переиспользовать код для любых будущих парсеров, которые мне понадобится разработать. Так появилась библиотека "UniParser". Она позволяла сосредоточиться именно на отличительных особенностях парсинга различных сайтов, а для всех повторяющейся "рутины" переиспользовать код из библиотеки.

Позже, я также понял, что неудобно тестировать парсеры, запуская их просто из консоли. Удобнее было бы в реальном времени видеть прогресс парсинга в визуальном интерфейсе в браузере. Видеть, какие разделы сайта он обрабатывает, отслеживать, в какой именно момент происходит та или иная ошибка, не позволяющая перейти на следующий этап парсинга или обработки полученной информации. Также, было бы хорошо иметь возможность через UI указать, с какого места продолжить работу, визуально увидев, на каком шаге что-то пошло не так.

Все это удалось реализовать при помощи фреймворка AngularJS, позволявшего строить интерактивные веб-интерфейсы. Веб-приложение на AngularJS получала список проектов парсинга. Я выбирал какой сейчас запустить. Дальше веб-приложение получало от PHP конфигурацию для данного проекта и отображало все запланированные этапы. Можно было запустить нужный этап и видеть все запланированные действия на этом этапе, и визуально следить, какие уже выполнены, а какие еще впереди. Запускать или перезапускать каждое действие, видеть как это влияет на собранные данные и т.д.

Саму внутреннюю логику парсинга и обработки данных все еще приходилось писать вручную в php-файлах. Но как минимум, к этому моменту уже был унифицирован переиспользуемый код парсеров, а с добавление UI на AngularJS появился визуальный интерфейс для удобного запуска, мониторинга и управления парсерами.

Технологический стек