Files
morele_scraper/README.md
2025-06-18 21:22:55 +03:00

7.3 KiB
Raw Permalink Blame History

🔍 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/
  1. Установите зависимости:
pip install -r requirements.txt
  1. Создайте файл конфигурации:

При первом запуске файл 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 в браузере.

Добавление категорий

  1. Откройте админ-панель
  2. Перейдите в раздел "Категории"
  3. Добавьте 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

🔧 Расширение функциональности

Добавление нового переводчика

  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 переводчиков
  • Законодательство о парсинге данных

Удачного парсинга! 🚀