Проект аудита отелей: основные скрипты и документация
- Краулеры: 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
This commit is contained in:
153
README.md
Normal file
153
README.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# Парсер данных об отелях 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
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user