Задача была сделать сервис, который 24/7 собирает актуальные курсы обмена с exnode.ru по нескольким направлениям и публикует их в XML-формате, совместимом с агрегаторами обменников вроде BestChange. Обновление должно происходить каждые 30 секунд.
Я разработал асинхронный Python-сервис с Playwright и Chromium. Для обхода антибот-защиты использовал headful-режим и stealth JS. Добавил Telegram-бота для управления сервисом без перезапуска, aiohttp для проверки курсов через CBR API, Docker Compose для деплоя и Nginx для отдачи XML-фида.
Сервис развёрнут и работает в production-режиме 24/7. Курсы автоматически обновляются и публикуются в XML-фид, который можно подключать к агрегаторам обменников. Заказчик получил автоматизированную систему без ручного обновления курсов.