# 🤖 Что делает краулер - пошаговый процесс ## 📋 КРАТКИЙ ОТВЕТ Краулер делает **ТОЛЬКО парсинг и сохранение в БД**. Никаких эмбеддингов, векторизации или анализа! --- ## 🔄 ПОЛНЫЙ ПРОЦЕСС (шаг за шагом) ### 1️⃣ **Получение списка отелей** (`get_unprocessed_hotels`) ```sql SELECT id, full_name, region_name, website_address FROM hotel_main WHERE website_address IS NOT NULL AND id NOT IN (SELECT hotel_id FROM hotel_website_processed) ORDER BY id LIMIT 50 -- пачками по 50 ``` **Что делает:** - Берёт отели с сайтами - Исключает уже обработанные - Обрабатывает пачками по 50 штук --- ### 2️⃣ **Краулинг сайта** (`crawl_hotel`) #### 2.1. Запуск браузера Playwright - Открывает headless браузер - User-Agent: Mozilla/5.0 (Windows...) - Параллельно: 5 браузеров (`MAX_CONCURRENT = 5`) #### 2.2. Загрузка главной страницы ```python await page.goto(website, wait_until='domcontentloaded', timeout=20000) ``` - Таймаут: 20 секунд - Ждёт загрузки DOM #### 2.3. Извлечение контента главной ```python html = await page.content() # Сырой HTML cleaned_text = TextCleaner.clean_html(html) # Очищенный текст ``` **`TextCleaner.clean_html()` делает:** - Удаляет `