Как из WBApp передать скачанное изображение в CD?

Тема в разделе "Решение различных задач по парсингу", создана пользователем nail, 5 сен 2021.

Метки:
  1. nail

    nail Member Пользователи

    Регистрация:
    15 сен 2014
    Сообщения:
    60
    Разбираю вот такой XML файл через CD через повторяющиеся границы. Здесь скинул только один оффер.
    Код:
    <offer>
    <original_picture>https://cdn.svyaznoy.ru//upload/iblock/03b/0482896_2.jpg</original_picture>
     <name><![CDATA[PATRIOT DDR4 16Gb 2400MHz]]></name>
     <description><![CDATA[]]></description>
     <vendor><![CDATA[PATRIOT]]></vendor>
     <model><![CDATA[DDR4 16Gb 2400MHz]]></model>
     <oldprice>7199.00</oldprice>
     <url>https://www.svyaznoy.ru/catalog/notebook/11342/5490155</url>
     <currencyId>RUR</currencyId>
     <categoryId>11342</categoryId>
     <price>5999.00</price>
     <param name="Группа товаров"><![CDATA[5490155]]></param>
    </offer>
    Из тега original_picture ссылку на изображение передаю в WBApp таким образом:
    Код:
    [WBAPP(C:\Content_Downloader\WBappProjects\primer.wbapp|[GRAN4][GETRESULT])][/WBAPP]
    - где [GRAN4] - это ссылка на изображение.

    В WBApp список событий следующий:
    Код:
    [SETVAR(1)] =[GETELEMATTR(src|XPath)]
    [DOWNLOADIMAGE([VAR(1)])]
    В предпросмотре открывается WBApp и отображается изображение.
    Но в предпросмотре в правой нижней колонке изображения нету. Через макрос RENDERED тоже ничего не отображается.

    Кто-то может подсказать - как передать изображение из WBApp в CD?

    Только не предлагайте DOWNLOADFILE и CIS/WIN/WIN2. Не всегда скачивает. Так как тут картинки по прямой ссылке отдаются через CDN Cloudflare.
    И тут только через браузер можно стабильно скачивать картинки по прямой ссылке )
     
  2. nail

    nail Member Пользователи

    Регистрация:
    15 сен 2014
    Сообщения:
    60
    Уже разобрался.
    Чтобы получить обратно в CD изображение - надо использовать следующую конструкцию:
    Код:
    [WBAPP(C:\Content_Downloader\WBappProjects\primer.wbapp|[GRAN4])][CDDATA:1][GRAN4][/CDDATA][/WBAPP]
    А primer.wbapp должен состоять из одного события:
    Код:
    [DOWNLOADIMAGE([CDDATA:1])]
    И строку ссылки оставляем пустой:

    Снимок экрана 2021-09-06 в 09.46.14.png

    Только осталось эти изображения теперь как-то раскидать по папкам через DFN. Пока не знаю как... )
     
  3. nail

    nail Member Пользователи

    Регистрация:
    15 сен 2014
    Сообщения:
    60
    Чтобы раскидать по нужным папкам каждое изображение надо использовать такой код:
    Код:
    [SETRENDEREDNAME(1)][GRAN1]/[VARF:md5_[CC]][/SETRENDEREDNAME]
    В данном случае я использовал генерацию MD5 для одной границы - которая уникальна, но может иметь символы, которые не желательно использовать в наименовании изображений.

    И не забыть указать основную папку для изображений - куда все они будут загружаться по своим подпапкам:

    Снимок экрана 2021-09-06 в 11.04.45.png

    Осталась задача - проверить на существование файла(изображения) уже на локальном диске - чтобы при повторном запуске проекта не скачивать эти изображения заново.

    Кто-нибудь смог сделать правильную проверку существования изображений на локальном диске?

    Что-то через макросы [IF] и [CHARCOUNT] - не получается пока. Всё-равно скачивает повторно.
     

Поделиться этой страницей