Files
hotels/README.md
Фёдор 0cf3297290 Проект аудита отелей: основные скрипты и документация
- Краулеры: smart_crawler.py, regional_crawler.py
- Аудит: audit_orel_to_excel.py, audit_chukotka_to_excel.py
- РКН проверка: check_rkn_registry.py, recheck_unclear_rkn.py
- Отчёты: create_orel_horizontal_report.py
- Обработка: process_all_hotels_embeddings.py
- Документация: README.md, DB_SCHEMA_REFERENCE.md
2025-10-16 10:52:09 +03:00

154 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Парсер данных об отелях 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