[xParser] 1.5.0 - Полная поддержка miniShop2 и обновление записей



Наконец-то! Для многих — долгожданный релиз!

Основные нововведения:
  • Поддержка товаров miniShop2 (любые свойства/опции)
  • Поддержка miniShop2 галереи
  • Поддержка ms2Gallery
  • Возможность обновления записей

Обновление записей

Для этого при создании/редактировании задания появилась галочка (по-умолчанию, отключено).


ms2Gallery / miniShop2 галерея

Выгружать изображения в галерею, тоже, достаточно просто. Нужно лишь все изображения собрать в JSON массив при помощи Fenom. Вот таким кодом я собрал все изображения, используемые в контенте спарсенной записи, в JSON массив:
@INLINE {($content | preg_get_all : '!https?://[^"]+\.(?:jpe?g|png|gif)!Ui') | toJSON}

На выходе, компонент превращает его в обычный массив PHP и по-очереди выгружает в галерею.

Особенности работы с miniShop2 товарами

Есть ряд особенностей, которые следует соблюдать, при создании ms2 товаров при помощи xParser.

1) В конфигурации задания нужно выбрать раздел с типом «Категория товаров».

2) В полях задания нужно создать поле resource | class_key, со значением по-умолчанию: msProduct

3) Для корректной выгрузки таких полей, как tags, color, size и т.п. при создании полей задания была добавлена настройка «Раскодировать JSON строку в массив». Дело в том, что при создании товаров через процессор, miniShop2 ждет от нас PHP массив для этих полей, поэтому для корректной выгрузки такого типа полей, нужно раскодировать JSON в PHP. К примеру, вот:


msOptionsPrice2

Вот этого компонент пока не поддерживает. Будем внедрять, если найдется спонсор.

P.S.

Компонент скоро будет стоить дороже на 1-2к. Поэтому, если собираетесь покупать — сейчас самое время!
04 ноября 2017, 15:42    Павел Гвоздь   
1    644 +7

Комментарии ()

  1. Андрей 04 ноября 2017, 15:54 # +1
    Спасибо, класс!))
    1. Александр Мельник 04 ноября 2017, 18:05 # +1
      Я правильно понимаю суть компонента? Можно указать любой сайт в качестве источника для парсинга, скажем сайт поставщика товаров, задать какие-то соответствия, задать уровень вложенности по которому нужно искать товары и компонент сам создаст товары в магазине?
      1. Николай Савин 04 ноября 2017, 22:36 # 0
        Очень примерно — правильно.
        1. Александр Мельник 04 ноября 2017, 22:56 # 0
          Спасибо.
          Жаль что нельзя заплатить очень примерными деньгами))
          Ну а если без шуток — у нас сейчас работает отдельно человек, который пишет программы парсинга индивидуально для каждого сайта. Потому, что информация на сайтах очень различается по подаче, оформлению, структуре. Где-то характеристики товаров не отображаются, пока не пролистать страницу, а потом грузятся аяксом, где-то изображения товаров это не простые ссылки — это закодированные svg файлы, которые вставляются через JS и защищены от копирования… Все это парсится в XLSX, потом вручную проверяется менеджерами и то — при импорте в minishop все проходит очень не гладко. Если кто-то все это предусмотрел в одном компоненте — я снимаю шляпу.
          1. Андрей 05 ноября 2017, 00:01 # +1
            Ещё есть Content Downloader, очень гибкий в настройках софт.
      2. Руслан Алеев 18 ноября 2017, 15:59 # 0
        Здравствуйте! Может кто встречался с проблемой:
        Создал тестовое задание на парсинг 10 ресурсов с картинками в категорию miniShop (как товар с галереей), запустил из cron — в результате, 7 ресурсов идет в категорию miniShop, как и нужно, а 3 ресурса идут как дочерние ресурсы категории miniShop — см. http://clip2net.com/s/3Pz3nrd
        Как исправить?
        1. Руслан Алеев 20 ноября 2017, 16:18 # 0
          UPD: Проблема решилась, спасибо автору дополнения. Проблема была в том, что некоторые страницы были другой верстки, нежели страницы, под которые настраивался парсинг.
        2. Igor Ivanov 28 ноября 2017, 13:36 # 0
          Павел, а получится парсить отзывы о товаре с яндекс.маркета? И вставлять их в табличку customExtra?
          1. Павел Гвоздь 29 ноября 2017, 11:37 # 0
            а получится парсить отзывы о товаре с яндекс.маркета
            Ну если на маркете в отзывах есть структура страницы, которая подгружается в коде страницы, то можно парсить.

            И вставлять их в табличку customExtra
            Тут сложнее. Пока не реализован функционал работы со сторонними объектами (не ресурсами). Однако, всегда можно проспонсировать доработку. Если интересно — пишите мне в ТП на modstore.
          2. Алексей 29 ноября 2017, 16:55 # 0
            немного не понял вот эти строки:
            На выходе, компонент превращает его в обычный массив PHP и по-очереди выгружает в галерею.
            Как всетаки заставить xparser загружать изображения в галерею? можно по-шагам. В документации не нашел тоже ничего по этому вопросу.
            1. Алексей 29 ноября 2017, 20:33 # +1
              в общем все понятно, разобрался! полезная ссылка для модификатора preg_get_all
              непонятно только что делать вот с этим делом:
              как бороться с max_execution_time лимитом при парсинге даже около ~50 страниц это занимает больше обычных 60 секунд.
              1. Сергей Лелеко 30 ноября 2017, 06:38 # 0
                Дак увеличьте в пхп этот лимит :)

                либо в php.ini либо через .htaccess если у вас апачи
                1. Алексей 30 ноября 2017, 10:50 # 0
                  оказалось — проще. просто запустить скрипт cron'а из консоли. тогда все лимиты времени побоку
                  1. Павел Гвоздь 01 декабря 2017, 00:32 # 0
                    Лимит увеличивать не нужно, это чревато плохими последствиями.
                    1. Сергей Лелеко 01 декабря 2017, 06:19 # 0
                      Например?
              2. Василий Столейков 12 декабря 2017, 14:50 # +1
                xParser работает только с ресурсами MODX?
                Есть ли возможность с помощью данного компонента парсить данные в свою таблицу, чтобы не перегружать дерево ресурсов?
                1. Павел Гвоздь 12 декабря 2017, 23:27 # 0
                  Увы, сейчас такой возможности нет.
                Вы должны авторизоваться, чтобы оставлять комментарии.