5e807fd7cec1c8e56b53435bfc5eeb33f3b27a95
- Added detailed statistics from hotel registry - Shows total hotels, active hotels, hotels with websites, accessible sites - Dynamic section positioning (no more hardcoded row numbers) - Fixed region name usage throughout (no more 'СПб' in Orel reports) - Shows different stats for ONLY_ACTIVE mode Stats now include: - Registry data: Total/Active hotels, Hotels with websites, Accessible sites - Audit data: Audits conducted, With/Without sites, RKN registry, Avg score, Compliant hotels (≥50%) Tested on Orel region: - 64 total active hotels in registry - 35 with websites - 29 audited - Avg score: 44.1%
Парсер данных об отелях 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 данных
🚀 Использование
Проверить прогресс парсинга
cd /root/engine/public_oversight/hotels
./check_progress.sh
Подключение к базе данных
import psycopg2
conn = psycopg2.connect(
host="147.45.189.234",
port=5432,
database="default_db",
user="gen_user",
password="2~~9_^kVsU?2\S"
)
Примеры запросов
-- Все отели в Краснодарском крае
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)
- Краснодарский край - 4,193
- Москва - 3,078
- Московская область - 1,721
- Санкт-Петербург - 1,646
- Республика Крым - 1,487
- Республика Алтай - 834
- Ростовская область - 793
- Республика Татарстан - 747
- Ставропольский край - 702
- Республика Башкортостан - 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
Description
Languages
Python
96.5%
JavaScript
2.2%
Shell
1.3%