Skip to content

Cервис, позволяющий следить за изменением количества объявлений в Авито по определённому поисковому запросу и региону.

Notifications You must be signed in to change notification settings

VITca64rus/avito_tech

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Необходимо реализовать JSON API сервис, позволяющий следить за изменением количества объявлений в Авито по определённому поисковому запросу и региону.

Для написание сервиса использовался FastAPI фреймворк.

  • Метод /add Должен принимать поисковую фразу и регион, регистрировать их в системе. Возвращать id этой пары.
  • Метод /stat Принимает на вход id связки поисковая фраза + регион и интервал, за который нужно вывести счётчики. Возвращает счётчики и соответствующие им временные метки (timestamp).

Частота опроса = 1 раз в минуту для каждого id

Требования:

  • Язык программирования: Python 3.7/3.8

  • Требований к используемым технологиям нет.

  • Код должен соответствовать PEP, необходимо использование type hints, к публичным методам должна быть написана документация.

  • Чтобы получить число объявлений, можно:

    • парсить web-страницу объявления (xpath, css-селекторы)
    • самостоятельно проанализировать трафик на мобильных приложениях или мобильном сайте и выяснить какой там API для получения информации об объявлении (выбранный мной способ)

Усложнения:

  • Написаны тесты (постарайтесь достичь покрытия в 70% и больше). Вы можете использовать pytest или любую другую библиотеку для тестирования. (-)
  • Сервис асинхронно обрабатывает запросы. (+)
  • Данные сервиса хранятся во внешнем хранилище, запуск которого также описан в docker-compose. Мы рекомендуем использовать MongoDB или Postgres, но Вы можете использовать любую подходящую базу. (Выбрана SQLite)
  • По каждому id также собираются топ 5 объявлений. На их получение есть отдельная ручка, архитектуру продумайте самостоятельно (-)

About

Cервис, позволяющий следить за изменением количества объявлений в Авито по определённому поисковому запросу и региону.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages