asyncio
clickhouse
docker
fastapi
postgresql
python
rabbitmq
react
redis
selenium
typescript
web
Основная задача - обеспечить бизнес актуальной информацией о ценах на автомобили собирая и обновляя данные каждые сутки.
Основные особенности:
Платформа позволяет произвести параллельный запуск парсеров для сбора данных с нескольких веб-сайтов одновременно, и использовать множество клиентов для обработки каждого сайта. Это обеспечивает более эффективный сбор данных и повышает производительность.
Решение использует ClickHouse для сбора статистики о процессе парсинга и мониторинга его работы. ClickHouse обеспечивает эффективное хранение и анализ данных, что позволяет оперативно отслеживать процесс сбора информации и принимать соответствующие меры в случае необходимости.
Результаты парсинга сохраняются в PostgreSQL для дальнейшего использования.
Для кеширования на платформе используется Redis.
Админ-панель написана на React. Она предоставляет удобный интерфейс для мониторинга работы парсеров, с возможностью просмотра статистики сбора данных.
Реализована отправка периодических уведомлений в Telegram, показывающих краткое состояние работы и сигнализирующее о проблемах или сбоях в процессе парсинга.
Каждый парсер в системе имеет одну и ту же архитектуру, но существуют три различных варианта, как разработчик может его написать, адаптируя его под конкретный сайт.
Для получения данных система применяет следующие методы:
Отправка запросов на API и последующая обработка JSON-ответов.
Получение данных путем запросов к HTML-страницам и извлечение необходимой информации оттуда.
Использование запросов к мобильному API и обработка полученных JSON-данных. К примеру, пришли к использованию реверс-инжиниринга пропатченых мобильных приложений, включая анализ трафика через fiddler/mitmproxy, для получения необходимых данных.
Для обхода защиты CloudFlare, применяется методика имитации TLS-fingerprint.
Система является надежным и эффективным инструментом для бизнеса, дающая возможность получать современные данные о ценах на автомобили и позволяющая принимать обоснованные решения о ценообразовании на основе достоверной информации.