ad4d215f04fd664a3dde3c20ea929cf7b2383480
🔍 Morele.net Parser
Профессиональный парсер для автоматического сбора товаров с сайта morele.net с переводом на украинский язык и генерацией фида для Prom.ua.
🚀 Возможности
- Автоматический парсинг товаров из указанных категорий
- Перевод на украинский язык с кешированием
- Загрузка и оптимизация изображений
- Генерация YML фида для Prom.ua
- Простая веб-админка для управления
- Модульная архитектура для лёгкого расширения
- Поддержка нескольких переводчиков (Google Translate, DeepL, LibreTranslate)
- Уведомления в Telegram
📋 Требования
- Python 3.8+
- SQLite (по умолчанию) или MySQL
- Доступ к интернету
- API ключи для переводчиков (опционально)
🛠 Установка
- Клонируйте проект или создайте структуру папок:
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/
- Установите зависимости:
pip install -r requirements.txt
- Создайте файл конфигурации:
При первом запуске файл config.yaml создастся автоматически с настройками по умолчанию.
⚙️ Настройка
Отредактируйте файл config.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'
🎯 Использование
Запуск веб-админки
python main.py --admin
Откройте http://127.0.0.1:5000 в браузере.
Добавление категорий
- Откройте админ-панель
- Перейдите в раздел "Категории"
- Добавьте URL категорий с morele.net
Пример URL категории:
https://www.morele.net/kategoria/laptopy-421/
Запуск парсинга
# Разовый запуск
python main.py --parse
# Генерация только фида
python main.py --generate-feed
Настройка автоматического запуска (cron)
Добавьте в crontab для ежедневного запуска в 02:00:
0 2 * * * /usr/bin/python3 /path/to/morele_parser/main.py --parse
📊 Структура данных
Парсер собирает для каждого товара:
- Название (оригинал + перевод)
- Цену в PLN
- Описание (оригинал + перевод)
- Характеристики (оригинал + перевод)
- Категорию
- Наличие
- Изображения (скачивает локально)
- Бренд, модель, артикул
- Ссылку на товар
🔄 YML фид для Prom.ua
Парсер автоматически генерирует YML фид с:
- Переведёнными названиями и описаниями
- Ценами в UAH (с актуальным курсом + наценкой)
- Локальными изображениями
- Всеми характеристиками
- Правильными категориями
Файл фида: feeds/prom_feed.yml
🔧 Расширение функциональности
Добавление нового переводчика
- Создайте класс, наследующий от
TranslationProvider - Реализуйте метод
translate() - Добавьте в
TranslationService._init_provider()
Добавление новых полей товара
- Обновите
MoreleParser._parse_product_page() - Добавьте поля в схему БД в
StorageManager._init_sqlite() - Обновите
FeedGenerator._create_offer()при необходимости
📝 Логирование
Логи сохраняются в:
logs/parser.log- основные логи- База данных - статистика парсинга
- Telegram - уведомления о результатах
⚠️ Важные моменты
- Соблюдайте robots.txt и не перегружайте сервер запросами
- Используйте VPN если необходимо для доступа к API переводчиков
- Настройте паузы между запросами в конфигурации
- Регулярно обновляйте курсы валют
- Проверяйте качество переводов и корректируйте при необходимости
🐛 Решение проблем
Ошибки перевода
- Проверьте API ключи в config.yaml
- Убедитесь в наличии интернет-соединения
- Попробуйте другой сервис перевода
Ошибки парсинга
- Проверьте доступность morele.net
- Обновите User-Agent в конфигурации
- Увеличьте паузы между запросами
Проблемы с изображениями
- Проверьте свободное место на диске
- Убедитесь в правильности базового URL для изображений
- Проверьте права доступа к папке images/
📞 Поддержка
При возникновении проблем:
- Проверьте логи в
logs/parser.log - Убедитесь в правильности конфигурации
- Проверьте доступность внешних сервисов
- Обновите зависимости:
pip install -r requirements.txt --upgrade
📄 Лицензия
Проект предназначен для образовательных целей. При использовании соблюдайте:
- Условия использования morele.net
- Лимиты API переводчиков
- Законодательство о парсинге данных
Удачного парсинга! 🚀
Description
Languages
Python
91.5%
Shell
8.5%