А как насчет более подробной информации? Месяц назад в нашу команду поступило задание примерно следующего содержания: запускается новый сайт интернет-магазина, работающий на Битриксе, все товары в его базе уже зарегистрированы, но фотографии к каждому товару заполнены не полностью( к каждому товару есть только подробное фото, а превью - фотографий и дополнительных изображений нет).
Для каждого изделия необходимо было сделать:
- Загрузите каждую подробную фотографию
- Измените его размер до необходимого разрешения и обработайте в зависимости от статуса товара (разрешение фото для люксового товара выше, чем для товара из категории масс-маркета)
- Загрузите это фото как дополнительное изображение
- Измените размер одной и той же фотографии до разрешения, необходимого для трех типов изображений предварительного просмотра продукта, и загрузите ее в поля изображения предварительного просмотра.
- Загрузите со старого сайта дополнительные фотографии для каждого товара и подгоните их под разрешение основной фотографии (для целей данного поста будем считать, что доступа к базе данных старого сайта нет)
- Загрузите дополнительные фотографии в раздел дополнительных изображений.
Предполагается, что вы умеете работать с Python и SQL, знаете библиотеки request, bs4, sqlite3, если нет, то информация все равно будет полезна.
Шаг 1. Массовое получение ссылок на изображения из Битрикс
На этом этапе мы потратили больше всего времени, потому что не заметили одну маленькую кнопку, которая значительно упрощает загрузку изображений и не приходится писать парсеры, эмулирующие сессию и так далее.Первое, что вам нужно знать: чтобы скачать изображение с помощью Python и даже просто скачать его, вам необходимо получить прямую ссылку на это изображение.
Это можно сделать путем парсинга карточки товара в Битриксе, а можно просто (как оказалось) скачать таблицу с соответствующим ID товара и ссылкой на подробное изображение.
Для этого перейдите в раздел Ресурсы > Каталог > Каталог товаров > Эelements.
Каталог продуктов Битрикс Видите механизм, выделенный на фотографии? Нажмите на нее и настройте поля, которые будут отображаться в таблице в зависимости от вашей задачи.
Установка стола Для нашей конкретной задачи нам нужна была только подробная картинка, но в зависимости от ваших настроек они могут отличаться.
Нажмите кнопку «Применить» и получите красивый вид таблицы нашей продукции.
Теперь нам нужно скачать эту таблицу как обычную таблицу Excel. Для этого нажмите эту кнопку:
Поздравляем, вы загрузили полную таблицу Excel со всеми продуктами, их идентификаторами, номерами артикулов и ссылками на подробное фото.
А если вы уже готовы распаковать свой модуль для работы с таблицами Excel на Python, то спешу вас прервать и открыть скачанный файл в текстовом редакторе:
Оказывается, это обычный html-документ, что нас конечно радует. Полученные данные было бы неплохо привести в удобный формат плюс-минус, то есть загрузить в локальную базу данных.
Прежде чем вы сможете загрузить что-либо в таблицу, вам необходимо ее создать: (Хотелось бы отметить, что этот шаг не является обязательным, и если вам удобно хранить данные в формате json, txt или той же таблице, пожалуйста, сделайте это).
Теги: #python #php #sql #Битрикс #1С-Битрикс #Битрикс Картинки #Продукты БитриксCREATE TABLE "elements" (
-
Латышский
19 Oct, 24 -
Асинхронная Загрузка Данных Backbone.js
19 Oct, 24