# Парсер данных об отелях tourism.fsa.gov.ru Полный сбор данных о 33,773 средствах размещения из реестра Федерального агентства по туризму. ## 📊 Статус ### Этап 1: Базовые данные ✅ ЗАВЕРШЁН - **33,773 отелей** загружено - Время: 4 минуты - Таблица: `hotel_main` ### Этап 2: Детальные данные ⚙️ В ПРОЦЕССЕ - Запущен: 2025-10-10 23:53 - Ожидаемое завершение: ~07:24 - Осталось: ~7 часов ## 📁 Структура базы данных ``` hotel_main -- Основная информация (33,773 записей) ├── id (UUID) ├── full_name, short_name ├── status, category (звёздность) ├── region, addresses ├── owner_ogrn, owner_inn ├── phone, email, website └── photo_ids hotel_additional_info -- Дополнительная информация о владельце hotel_sanatorium -- Инфраструктура санаториев (бассейн, пляж, лицензии) hotel_services -- Детальные услуги (оборудование, сервисы) hotel_rooms -- Номерной фонд (категории, количество, оборудование) hotel_raw_json -- Backup сырых JSON данных ``` ## 🚀 Использование ### Проверить прогресс парсинга ```bash cd /root/engine/public_oversight/hotels ./check_progress.sh ``` ### Подключение к базе данных ```python import psycopg2 conn = psycopg2.connect( host="147.45.189.234", port=5432, database="default_db", user="gen_user", password="2~~9_^kVsU?2\S" ) ``` ### Примеры запросов ```sql -- Все отели в Краснодарском крае SELECT full_name, category_name, phone, email FROM hotel_main WHERE region_name = 'Краснодарский край'; -- Отели 5 звёзд с контактами SELECT full_name, website_address, phone, email FROM hotel_main WHERE category_name = 'пять звезд' AND (phone IS NOT NULL OR email IS NOT NULL); -- Санатории с бассейнами SELECT m.full_name, s.swimming_pool_info FROM hotel_main m JOIN hotel_sanatorium s ON m.id = s.hotel_id WHERE s.swimming_pool_info->>'availability' = 'true'; -- Услуги конкретного отеля SELECT service_category_name, service_name FROM hotel_services WHERE hotel_id = 'bd2035e9-2dff-4871-b1f1-91ef1eaee7f3'; ``` ## 📈 Статистика ### География (топ-10) 1. Краснодарский край - 4,193 2. Москва - 3,078 3. Московская область - 1,721 4. Санкт-Петербург - 1,646 5. Республика Крым - 1,487 6. Республика Алтай - 834 7. Ростовская область - 793 8. Республика Татарстан - 747 9. Ставропольский край - 702 10. Республика Башкортостан - 683 ### Типы средств размещения - Гостиница: 27,147 (80.4%) - База отдыха: 4,729 (14.0%) - Санаторий: 1,178 (3.5%) - Кемпинг: 552 (1.6%) - Гостевой дом: 167 (0.5%) ### Звёздность - Без категории: 22,657 (67.1%) - Три звезды: 5,437 (16.1%) - Четыре звезды: 2,290 (6.8%) - Две звезды: 2,294 (6.8%) - Пять звёзд: 432 (1.3%) - Одна звезда: 663 (2.0%) ## 🔧 Техническая информация ### API Endpoints - `/api/v1/resorts/hotels/showcase` - список отелей - `/api/v1/resorts/hotels/{id}/main` - основная информация - `/api/v1/resorts/common/{id}/additional-info` - дополнительная информация - `/api/v1/resorts/hotels/{id}/sanatoriumDrawer` - санаторная информация - `/api/v1/resorts/hotels/{id}/drawer` - детальные услуги ### Скрипты - `scraper_safe.py` - сбор базовых данных (showcase) - `scraper_detailed.py` - сбор детальной информации (4 endpoint'а на отель) - `check_progress.sh` - мониторинг прогресса - `create_tables.py` - создание схемы БД - `check_db.py` - проверка подключения к БД ### Логи - `scraper_YYYYMMDD_HHMMSS.log` - лог базового парсинга - `scraper_detailed_YYYYMMDD_HHMMSS.log` - лог детального парсинга - `full_scrape.log` - вывод базового парсинга - `detailed_scrape.log` - вывод детального парсинга ## ⚠️ Важно - Rate limiting: 10 запросов/сек (RATE_LIMIT_DELAY = 0.1) - Checkpoint каждые 1000 отелей - Batch INSERT по 100 записей - Автоматическое восстановление при сбоях - ON CONFLICT для безопасного перезапуска ## 📞 Контакты и источники - Источник данных: https://tourism.fsa.gov.ru - API Base: https://tourism.fsa.gov.ru/api/v1 - Реестр: Федеральное агентство по туризму РФ - Дата сбора: 2025-10-10