# 🔍 Morele.net Parser Профессиональный парсер для автоматического сбора товаров с сайта morele.net с переводом на украинский язык и генерацией фида для Prom.ua. ## 🚀 Возможности - **Автоматический парсинг товаров** из указанных категорий - **Перевод на украинский язык** с кешированием - **Загрузка и оптимизация изображений** - **Генерация YML фида** для Prom.ua - **Простая веб-админка** для управления - **Модульная архитектура** для лёгкого расширения - **Поддержка нескольких переводчиков** (Google Translate, DeepL, LibreTranslate) - **Уведомления в Telegram** ## 📋 Требования - Python 3.8+ - SQLite (по умолчанию) или MySQL - Доступ к интернету - API ключи для переводчиков (опционально) ## 🛠 Установка 1. **Клонируйте проект или создайте структуру папок:** ``` morele_parser/ ├── main.py ├── config.py ├── requirements.txt ├── config.yaml (создается автоматически) ├── modules/ │ ├── __init__.py │ ├── parser.py │ ├── translator.py │ ├── image_downloader.py │ ├── feed_generator.py │ ├── storage.py │ └── admin.py ├── data/ ├── images/ ├── feeds/ └── logs/ ``` 2. **Установите зависимости:** ```bash pip install -r requirements.txt ``` 3. **Создайте файл конфигурации:** При первом запуске файл `config.yaml` создастся автоматически с настройками по умолчанию. ## ⚙️ Настройка Отредактируйте файл `config.yaml`: ```yaml # Основные настройки перевода translation: service: 'google' # google, deepl, libretranslate google: api_key: '' # Можно оставить пустым для бесплатной версии # Настройки фида feed: shop_name: 'Ваш магазин' company: 'Ваша компания' images_base_url: 'https://yoursite.com/' # URL для изображений margin_percent: 10 # Наценка в процентах # Уведомления в Telegram (опционально) telegram: enabled: true bot_token: 'YOUR_BOT_TOKEN' chat_id: 'YOUR_CHAT_ID' ``` ## 🎯 Использование ### Запуск веб-админки ```bash python main.py --admin ``` Откройте http://127.0.0.1:5000 в браузере. ### Добавление категорий 1. Откройте админ-панель 2. Перейдите в раздел "Категории" 3. Добавьте URL категорий с morele.net Пример URL категории: ``` https://www.morele.net/kategoria/laptopy-421/ ``` ### Запуск парсинга ```bash # Разовый запуск python main.py --parse # Генерация только фида python main.py --generate-feed ``` ### Настройка автоматического запуска (cron) Добавьте в crontab для ежедневного запуска в 02:00: ```bash 0 2 * * * /usr/bin/python3 /path/to/morele_parser/main.py --parse ``` ## 📊 Структура данных Парсер собирает для каждого товара: - Название (оригинал + перевод) - Цену в PLN - Описание (оригинал + перевод) - Характеристики (оригинал + перевод) - Категорию - Наличие - Изображения (скачивает локально) - Бренд, модель, артикул - Ссылку на товар ## 🔄 YML фид для Prom.ua Парсер автоматически генерирует YML фид с: - Переведёнными названиями и описаниями - Ценами в UAH (с актуальным курсом + наценкой) - Локальными изображениями - Всеми характеристиками - Правильными категориями Файл фида: `feeds/prom_feed.yml` ## 🔧 Расширение функциональности ### Добавление нового переводчика 1. Создайте класс, наследующий от `TranslationProvider` 2. Реализуйте метод `translate()` 3. Добавьте в `TranslationService._init_provider()` ### Добавление новых полей товара 1. Обновите `MoreleParser._parse_product_page()` 2. Добавьте поля в схему БД в `StorageManager._init_sqlite()` 3. Обновите `FeedGenerator._create_offer()` при необходимости ## 📝 Логирование Логи сохраняются в: - `logs/parser.log` - основные логи - База данных - статистика парсинга - Telegram - уведомления о результатах ## ⚠️ Важные моменты 1. **Соблюдайте robots.txt** и не перегружайте сервер запросами 2. **Используйте VPN** если необходимо для доступа к API переводчиков 3. **Настройте паузы** между запросами в конфигурации 4. **Регулярно обновляйте** курсы валют 5. **Проверяйте качество** переводов и корректируйте при необходимости ## 🐛 Решение проблем ### Ошибки перевода - Проверьте API ключи в config.yaml - Убедитесь в наличии интернет-соединения - Попробуйте другой сервис перевода ### Ошибки парсинга - Проверьте доступность morele.net - Обновите User-Agent в конфигурации - Увеличьте паузы между запросами ### Проблемы с изображениями - Проверьте свободное место на диске - Убедитесь в правильности базового URL для изображений - Проверьте права доступа к папке images/ ## 📞 Поддержка При возникновении проблем: 1. Проверьте логи в `logs/parser.log` 2. Убедитесь в правильности конфигурации 3. Проверьте доступность внешних сервисов 4. Обновите зависимости: `pip install -r requirements.txt --upgrade` ## 📄 Лицензия Проект предназначен для образовательных целей. При использовании соблюдайте: - Условия использования morele.net - Лимиты API переводчиков - Законодательство о парсинге данных --- **Удачного парсинга! 🚀**