Skip to content

Latest commit

 

History

History

server

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Server (auto-ads-parser)

C++ 17 парсер объявлений с сайтов auto.ru и avito.ru. Проект разделен на 2 части: master и slave. Такое разделение обусловлено возможностью обхода блокировок сайтов объявлений. Также есть общая часть - библиотека объектов общего кода (парсер).

Master - главное приложение веб-сервер. К ниму обращается клиентские приложения и остальные slave экземпляры.

Slave - вспомогательные экземпляры - парсеры, которые только отдают результат своей работы мастеру.

Зависимости

Обязательные:

  • libgumbo-dev
  • libcurl
  • zlib1g-dev
  • cmake (>= 3.14)
  • gcc (>= 8)

Дополнительные:

  • docker

Cmake

Доступны следующие опции:

  • BUILD_PARSER_MASTER
  • BUILD_PARSER_SLAVE

Docker

В проекте представлено два docker файла:

  • docker/master/Dockerfile - master
  • docker/slave/Dockerfile - slave

Перед сборкой docker образов исполняемые файлы должны быть скомпилированы.

Конфиг

"*" - обязательные поля

Уровни лога:

  • trace
  • debug
  • info
  • error
  • warning
  • critical
  • off

Url для сайта строится из части, которая представлена на сайте при выборе параметров и крайнего параметра - номера страницы, где вместо номера ставится "{}". В этом месте парсер будет подставлять номера страниц.

Master

Пример конфига

Название поля Тип данных Описание
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 Путь до папки, где будет храниться лог

Slave

Пример конфига

Название поля Тип данных Описание
autoru string Ссылка на список объявлений auto.ru
avito string Ссылка на список объявлений avito.ru
*loglevel string Минимальный уровень логгирования
*log_path string Путь до папки, где будет храниться лог
*master_addr string Http адрес экземпляра мастера