- ETL
- Скрейпинг → нормализация → Directus
- 7
- Сформированных аналитических отчётов
- Качество
- Оценка полноты и охвата
Технологии
- Python
- RTILA Studio
- Playwright
- pandas
- Directus
- Matplotlib
Задача
Собрать пригодный к использованию набор данных о локальных компаниях из Google Maps — это больше, чем просто выгрузить названия: нужны структурированные записи без дублей с контактными данными, и нужно понимать, насколько эти данные полны и достоверны, прежде чем на них полагаться.
Подход
Я построил парсер на Python и RTILA, который собирает карточки компаний (школы, организации) в структурированные записи, выполняя извлечение через среду Playwright и загружая результаты в headless CMS (Directus). Затем отдельный этап анализа данных оценивает собранный набор — полноту, ведущие категории, типы контактов, валидность почты, покрытие соцсетями и число контактов на организацию — и отображает результаты в виде графиков.
Результаты
Чистый проанализированный набор данных плюс набор отчётов о качестве, которые явно показывают охват и пробелы — полнота по полям, распределение категорий, разбивка по валидности почты и покрытие профилями в соцсетях — чтобы пользователи точно знали, с чем работают.
Инженерные решения
- Собирает карточки компаний из Google Maps (школы, организации) в структурированные записи по нормализованной схеме.
- ETL в headless CMS (Directus) со средой Playwright на этапе извлечения.
- Аналитический компонент оценивает полноту записей, ведущие категории, типы контактов, валидность почты и покрытие соцсетями.
- Строит готовые к публикации графики, обобщающие качество собранного набора данных.
Скриншоты и схемы
Реальные снимки интерфейса и графики — исходный код закрыт, бренды клиентов не показаны.
Подробный разбор
Этот проект соединяет этап скрейпинга с явным этапом контроля качества данных — именно это отличает пригодный набор данных от сырой выгрузки. Парсер приводит каждую карточку к единой схеме и загружает её в Directus; затем аналитический этап отвечает на вопросы, которые реально волнуют потребителя данных: насколько полно каждое поле, какие категории преобладают, у скольких записей есть валидная почта и у скольких — профили в соцсетях. Отображение этого в графиках превращает «мы спарсили какие-то компании» в обоснованное утверждение об охвате и качестве.