NFT PARSER — полноценная Telegram-система для автоматизированного поиска, анализа и обработки NFT.
Задача проекта была значительно шире обычного парсера. Нужно было сделать сервис, которым пользователь управляет прямо через Telegram: выбирает режим поиска и параметры, после чего система самостоятельно анализирует NFT, обрабатывает данные владельцев, получает рыночную информацию и выдаёт подходящие результаты.
В боте реализовано несколько сценариев работы: Easy, Hard, Random, Black, Onyx Black, фильтрация по параметрам и отдельный режим «21 день». Пользовательские запросы проходят через очередь, а уже найденные данные используются повторно из кэша, чтобы не выполнять лишние запросы.
Система работает не только с самим NFT. Она получает владельца, коллекцию, модель, фон, стоимость, количество подарков и другие параметры, после чего сохраняет обработанные данные для дальнейшего поиска.
Проект разрабатывался как постоянно работающий сервис, а не одноразовый скрипт.
Архитектуру разделил на отдельные модули: Telegram-бот, парсер NFT, база данных, очередь задач, кэш, планировщик и пул рабочих Telegram-сессий.
Telegram-интерфейс построен на Python и Aiogram. Пользователь задаёт необходимые параметры через кнопки и меню, после чего система проверяет локальный кэш. Если подходящих NFT недостаточно, запрос добавляется в очередь и обрабатывается в фоне.
Основной парсер работает асинхронно. Он обрабатывает страницы NFT, определяет состояние токена, получает данные владельца, характеристики NFT и актуальную стоимость. Предусмотрена отдельная обработка отсутствующих токенов, скрытых владельцев, временных сетевых ошибок, блокировок и FloodWait.
Для ускорения обработки данные владельцев и NFT сохраняются в кэш. При повторных запросах система может использовать уже полученную информацию вместо повторного полного анализа.
Добавил параллельную обработку NFT через asyncio и ограничение количества одновременно выполняющихся задач через Semaphore.
Отдельно реализован ML-модуль на PyTorch и Transformers. Система может обработать фотографию профиля с помощью модели SigLIP, а при отсутствии результата использовать дополнительный алгоритм анализа имени.
Для длительной работы используется отдельный Worker Pool. Система управляет несколькими Telegram-сессиями, следит за их состоянием и учитывает временные ограничения Telegram.
База данных хранит пользователей, коллекции, задания, NFT-кэш, запросы, заблокированные токены, статусы воркеров и служебные данные системы
В результате получился полностью рабочий Telegram-сервис, который объединяет бот, парсер, автоматизацию, очередь задач, несколько рабочих аккаунтов, базу данных и ML-модуль.
Пользователю не нужно запускать скрипты или вручную работать с данными. Вся работа выполняется через Telegram: пользователь выбирает необходимые параметры, а система самостоятельно находит и анализирует NFT и отправляет результат.
Проект поддерживает длительную фоновую работу. Бот и режим «21 день» могут запускаться вместе или отдельно, а состояние системы восстанавливается после перезапуска.
Архитектура позволяет добавлять новые режимы поиска, фильтры, коллекции и источники данных без полной переработки проекта.
Проект показывает мой опыт в разработке сложных Python-систем, Telegram-ботов, асинхронных парсеров, очередей задач, автоматизации, работе с базами данных и интеграции ML в реальный продукт.