C++ 17 парсер объявлений с сайтов auto.ru и avito.ru. Проект разделен на 2 части: master и slave. Такое разделение обусловлено возможностью обхода блокировок сайтов объявлений. Также есть общая часть - библиотека объектов общего кода (парсер).
Master - главное приложение веб-сервер. К ниму обращается клиентские приложения и остальные slave экземпляры.
Slave - вспомогательные экземпляры - парсеры, которые только отдают результат своей работы мастеру.
Обязательные:
- libgumbo-dev
- libcurl
- zlib1g-dev
- cmake (>= 3.14)
- gcc (>= 8)
Дополнительные:
- docker
Доступны следующие опции:
- BUILD_PARSER_MASTER
- BUILD_PARSER_SLAVE
В проекте представлено два docker файла:
- docker/master/Dockerfile - master
- docker/slave/Dockerfile - slave
Перед сборкой docker образов исполняемые файлы должны быть скомпилированы.
"*" - обязательные поля
Уровни лога:
- trace
- debug
- info
- error
- warning
- critical
- off
Url для сайта строится из части, которая представлена на сайте при выборе параметров и крайнего параметра - номера страницы, где вместо номера ставится "{}". В этом месте парсер будет подставлять номера страниц.
Название поля | Тип данных | Описание |
---|---|---|
autoru | string | Ссылка на список объявлений auto.ru |
avito | string | Ссылка на список объявлений avito.ru |
*loglevel | string | Минимальный уровень логгирования |
*port | uint16 | Порт веб-сервера |
*api_key | string | Api key для доступа клиента к веб-серверу. Url будет такого вида: http://<address_port>/<api_version>/<api_key>/ |
*log_path | string | Путь до папки, где будет храниться лог |
Название поля | Тип данных | Описание |
---|---|---|
autoru | string | Ссылка на список объявлений auto.ru |
avito | string | Ссылка на список объявлений avito.ru |
*loglevel | string | Минимальный уровень логгирования |
*log_path | string | Путь до папки, где будет храниться лог |
*master_addr | string | Http адрес экземпляра мастера |