Скрипт для вигрузки товарів з YML фіду та завантаження їх зображень з організацією по категоріях.
Цей Python скрипт обробляє XML файл у форматі YML (Yandex Market Language) та:
- Парсить всі категорії товарів
- Створює структуру папок для кожної категорії
- Для кожного товару створює окрему папку
- Завантажує всі зображення товарів
- Зберігає інформацію про товар у текстовому файлі
output/
├── {category_id}_{category_name}/
│ ├── {product_id}_{product_name}/
│ │ ├── info.txt # Інформація про товар
│ │ ├── image_01.jpg # Зображення 1
│ │ ├── image_02.jpg # Зображення 2
│ │ └── ...
│ └── ...
└── ...
- Python 3.7 або вище
- Бібліотеки з
requirements.txt
- Клонуйте репозиторій або завантажте файли
- Встановіть залежності:
pip install -r requirements.txtПросто подвійний клік на файли:
run.bat- завантажить всі зображенняanalyze.bat- покаже статистику фідуtest.bat- перевірить системуfix_python_path.bat- виправить Python PATH (потрібні права адміністратора)
- Спробуйте
fix_python_path.bat(запустіть як адміністратор) - Або встановіть Python з https://python.org
- Або додайте Python в PATH вручну
Скрипти автоматично шукають Python в:
- ✅ PATH системних змінних
- ✅ C:\Python39, C:\Python310, C:\Python311, C:\Python312
- ✅ C:\Program Files\Python*
- ✅ C:\Users\USERNAME\AppData\Local\Programs\Python\Python*
- ✅ Реєстрі Windows
- ✅ Всіх папках Program Files
Перед завантаженням всіх зображень можна проаналізувати структуру фіду:
python3 analyze_feed.pyЦе покаже:
- Кількість категорій і товарів
- Статистику по зображеннях
- ТОП-10 категорій
- Детальну інформацію по кожній категорії
-
Переконайтеся, що файл
products_feed.xmlзнаходиться в тій же папці, що й скрипт -
Встановіть залежності:
pip3 install -r requirements.txt- Запустіть скрипт:
python3 extract_images.py-
Скрипт почне обробку:
- Парсинг XML файлу
- Створення структури папок
- Завантаження зображень
-
Результати будуть збережені в папці
output/ -
Лог роботи зберігається в файлі
extract_images.log
- Автоматична очистка назв файлів: Видаляє недопустимі символи з назв папок
- Обмеження довжини назв: Обрізає занадто довгі назви до 200 символів
- Пропуск існуючих файлів: Не завантажує зображення повторно якщо воно вже є
- Затримка між запитами: 0.1 секунди між завантаженнями (можна змінити)
- Детальне логування: Всі дії записуються в лог файл
- Обробка помилок: Скрипт продовжує роботу навіть при помилках завантаження окремих зображень
У файлі extract_images.py можна змінити:
xml_file- назва XML файлу (за замовчуванням:products_feed.xml)output_directory- папка для результатів (за замовчуванням:output)delay_between_downloads- затримка між завантаженнями в секундах (за замовчуванням: 0.1)timeout- таймаут для завантаження зображень в секундах (за замовчуванням: 30)
2025-10-23 10:00:00 - INFO - Початок роботи скрипта
2025-10-23 10:00:00 - INFO - Читання XML файлу: products_feed.xml
2025-10-23 10:00:01 - INFO - Парсинг категорій...
2025-10-23 10:00:01 - INFO - Знайдено категорій: 65
2025-10-23 10:00:02 - INFO - Парсинг товарів...
2025-10-23 10:00:05 - INFO - Знайдено товарів: 5432
2025-10-23 10:00:05 - INFO - Створення структури папок і завантаження картинок...
2025-10-23 10:00:06 - INFO - Обробка категорії: Тактичні рюкзаки (145 товарів)
...
2025-10-23 10:15:00 - INFO - Завершено!
2025-10-23 10:15:00 - INFO - Всього категорій: 65
2025-10-23 10:15:00 - INFO - Всього товарів: 5432
2025-10-23 10:15:00 - INFO - Завантажено картинок: 24567/24600
Кожен товар має файл info.txt з наступною інформацією:
ID: 2636701394
Назва: Тактичний рюкзак Armour Tactical Oxford 900D на 35 літрів Мультикам
Категорія: Тактичні рюкзаки
Кількість зображень: 10
Посилання на зображення:
1. https://images.prom.ua/6816406753_taktichnij-ryukzak-armour.jpg
2. https://images.prom.ua/6816406762_taktichnij-ryukzak-armour.jpg
...
Скрипт обробляє наступні ситуації:
- Відсутній або пошкоджений XML файл
- Недоступні URL зображень
- Помилки мережі
- Недопустимі символи в назвах файлів
Всі помилки записуються в лог файл з детальною інформацією.
MIT License
Створено для обробки YML фідів інтернет-магазинів