Этот проект представляет собой шаблон для дальнейшего проектирования и разработки сервисов, работающих с официальным API Avito. Основное направление — взаимодействие с персональными объявлениями пользователя: получение токена авторизации, управление объявлениями, получение статистики и прочие действия в рамках возможностей официального API.
project_root/
├── app/
│ └── avito_api/
│ ├── auth/ # Сгенерированный клиент Avito API (раздел авторизации)
│ └── ads/ # Сгенерированный клиент Avito API (раздел объявлений)
├── docs/ # OpenAPI (Swagger) спецификации
├── notebooks/ # Jupyter-ноутбуки для тестирования кода
├── docker/
│ ├── docker-compose.yml
│ └── Dockerfile
└── .env # Конфигурация доступа (переменные окружения)
- Получение
access_tokenчерезclient_credentialsавторизацию - Подключение к сгенерированному Python-клиенту (
openapi-generator) - Поддержка запросов к разделам API Avito:
- Авторизация (
/token) - Работа с объявлениями (если авторизован под аккаунтом с доступом)
- Авторизация (
- Возможность расширения под другие разделы API: статистика, сообщения, продвижение
Создайте файл .env в корне проекта и укажите свои значения:
AVITO_CLIENT_ID=your_client_id
AVITO_CLIENT_SECRET=your_client_secret
Проект использует Docker и openapi-generator для генерации Python-клиента на основе OpenAPI-описания.
Пример запуска генерации клиента:
cd docker/
docker-compose up --buildПосле генерации код будет доступен в директориях app/avito_api/auth и app/avito_api/ads.
В директории notebooks/ находится файл test_avito_api.ipynb, где реализован пример получения токена авторизации и базовых вызовов API.
Модули auth и ads можно использовать напрямую без установки в систему. Достаточно добавить путь в sys.path:
import sys
sys.path.append('../app/avito_api/auth')- Проект ориентирован на работу с персональными объявлениями, размещёнными от вашего имени.
- Получение публичных списков объявлений по городам или категориям в официальном API не поддерживается.
- Для анализа рынка недвижимости рекомендуется использовать сторонние API, агрегирующие данные с различных площадок.
MIT License