Проблема со сдвигом данных в CSV при парсинге характеристик

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

  1. Dreadnought

    Dreadnought New Member Пользователи

    Регистрация:
    7 май 2013
    Сообщения:
    31
    Добрый день.
    Помогите решить проблему.
    Я парсю товары с сайта.
    У товаров я парсю характеристики и изображения.
    Вот так вот выглядит шаблон вывода:


    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**

    Проблема в том, что количество заполненных характеристик и изображений у каждого товара разное, и получаются вот такая вот штука:


    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**

    Красным выделены ссылки на изображения.
    Видите, как они прыгают? Сам параметр "Изображения" в данном csv файле начинается в столбце AE, но из-за того, что характеристики у всех товаров не однородно заполнены, параметр "Изображения" вставляется в первую попавшуюся пустую ячейку, а не в свой столбец.
    Скажите пожалуйста, как справиться с этой проблемой?

    Заранее спасибо за помощь.
     
    Последнее редактирование: 6 апр 2015
  2. Dreadnought

    Dreadnought New Member Пользователи

    Регистрация:
    7 май 2013
    Сообщения:
    31
    Неужели никто не даже не сталкивался с подобными проблемами?
     
  3. dexperanto

    dexperanto New Member Пользователи

    Регистрация:
    21 ноя 2014
    Сообщения:
    123
    Справиться довольно легко.
    Вам просто-напросто нужно под каждый параметр задать свою ячейку.

    К примеру, строго:
    название компании|название вакансии|адрес|телефон|email
    Даже если она не заполнится, останется пустой, фиг с ним.

    Дальше в нашем любимом excel пишем что-то подобное =ЕСЛИ(C1="";;"Название компании: "&C1&СИМВОЛ(10))&ЕСЛИ(D1="";;"Название вакансии: "&D1&СИМВОЛ(10))&ЕСЛИ(E1="";;"FАдрес: "&E1&СИМВОЛ(10))&ЕСЛИ(F1="";;"телефон:: "&F1&СИМВОЛ(10))&ЕСЛИ(G1="";;"email: "&G1)

    То есть, с учетом того, что какая-либо ячейка будет пустая, описание общее сформируется всегда красиво и правильно) Ну при условии, если у вас эта ячейка не нафаршируется мусором и границы будут заданы правильно. СИМВОЛ(10) - это enter, каретка перехода)
     
  4. Dreadnought

    Dreadnought New Member Пользователи

    Регистрация:
    7 май 2013
    Сообщения:
    31
    То есть это вариант для редактирования уже спарсенного CSV файла?
    Так проблема в том, что при парсинге, в случае, если значение отсутствует, туда попадает значение из следующего столба, тем самым нарушая структуру самой таблицы.
    Проблема именно в пустых ячейках в характеристиках, куда попадают значения из следующих столбцов.
    А есть ли решение попроще, к примеру что-то типа разрыва столбца(типа данные от следующего столбца не попадают в данные из предыдущего столбца)?
     
  5. dexperanto

    dexperanto New Member Пользователи

    Регистрация:
    21 ноя 2014
    Сообщения:
    123
    Конечно же есть)
    Я вам о чём...
    <CD_DOCURL!>[CSVCS]<CD_GRAN_1!>[CSVCS]<CD_GRAN_3!>[CSVCS]<CD_GRAN_2!>[CSVCS]<CD_GRAN_5!>[CSVCS]<CD_GRAN_6!>[CSVCS]<CD_GRAN_7!>

    csvcs это разделитель ячейки. То есть, если первая, вторая, третья, 100500 ячейка не примут значение, то они всё равно останутся пустыми, и табличка не покорёжится от этого.

    И да, вариант на стороне.
    Самый лёгкий и простой.
    С помощью формулы сможете в дальнейшем сформировать нормальное и универсально описании под каждый товар, даже если у него всего лишь одна ячейка заполнена, или он вообще пуст.
     
    Последнее редактирование: 6 апр 2015
  6. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Вы почти сами ответили себе на вопрос:)
    DYNAMICVALUE использовать обязательно в конце всех колонок!
     
  7. Dreadnought

    Dreadnought New Member Пользователи

    Регистрация:
    7 май 2013
    Сообщения:
    31
    Поменял местами, поставил DYNAMICVALUE после "изображения", но дело в том, что количество изображений у каждого товара тоже разное.
    Получилось ничем не лучше:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Можете ли предложить другое решение данной проблемы?
     
  8. Dreadnought

    Dreadnought New Member Пользователи

    Регистрация:
    7 май 2013
    Сообщения:
    31
    [CSVCS] стоят:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    но получается, то, что получается.
    Можете ли посоветовать что-нибудь еще?
     
  9. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Мало макросов, примените как можно больше динамических один за другим и точно никогда не настроете.)) :sweat:

    Если серьезно то вы портите работу макроса DYNAMICVALUE картинками.
    Займите несколько ячеек например 10 (где в каждой будет своя картинка) перед макросом DYNAMICVALUE, но картинки надо брать простыми границами, тоесть почти одинаково границы но каждая берет свою картинка1 картинка2 картинка3 картинка4 картинка5 и т.д.
     
  10. Dreadnought

    Dreadnought New Member Пользователи

    Регистрация:
    7 май 2013
    Сообщения:
    31
    Спасибо, помогло такое решение проблемы:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Больше ничего не менял.
     
  11. Serheo

    Serheo Well-Known Member Пользователи

    Регистрация:
    13 окт 2018
    Сообщения:
    251
    Город:
    Москва
    Чот такая же хрень приключилась. Пришлось поломать голову как обычными границами взять определенную фотку по счету. Уж очень привык их мультигетом или повторками брать.
     
  12. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Чтобы подобных проблем не случалось, нужно читать систему помощи.

    Ссылки недоступны для гостей

     
  13. Serheo

    Serheo Well-Known Member Пользователи

    Регистрация:
    13 окт 2018
    Сообщения:
    251
    Город:
    Москва
    Умею я читать систему помощи. Настройками MIN=N, MAX=N игрался. Но там после каждого значения границы должна идти пустая колонка. Логично сделать [VALUE][CSVCS], но при разном количестве заполненных [VALUE] из-за этих [CSVCS] колонки все равно ползут.
     
  14. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Непонятно, как они могут "ползти" при правильной настройке.

    Вы можете приложить файл проекта и сказать, что нажимать, чтобы увидеть проблему.
     
  15. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    В настройках повторяющихся границ допустим указать MIN=5 и MAX=5 тогда при парсинге колонки будут иметь строго забронированные свои 5 ячеек. Ничего не ползет.
    В шаблоне вывода это будет отображаться немного сдвинуто но при парсинге все корректно.
     
  16. Serheo

    Serheo Well-Known Member Пользователи

    Регистрация:
    13 окт 2018
    Сообщения:
    251
    Город:
    Москва
    MIN=5 и MAX=5 работает только если повторки идут подряд. Если повторки надо отделить пустой ячейкой [VALUE][CSVCS] это не работает. Проект прикладываю. Там как раз в каждой из 3-х ссылок разное количество картинок, а за картинками идет [DYNAMICVALUE]. При указании в повторах значений MIN и MAX колонки все равно ползут. Надо чтобы картинки занимали 6 колонок и при этом ссылка на картинку чередовалась бы с пустой колонкой.
     
    Последнее редактирование: 31 янв 2020
  17. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Нужно просто правильно посчитать и будет понятно, почему.

    Проект приложил.
     

    Вложения:

  18. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Если будут вопросы, обращайтесь
     
  19. Serheo

    Serheo Well-Known Member Пользователи

    Регистрация:
    13 окт 2018
    Сообщения:
    251
    Город:
    Москва
    Ну у меня там как у мартышки с очками получилось. [CSVCS] и MIN= MAX= местами не совпали, хотя идея сунуть 2 [CSVCS] в разделитель меня посещала. Спасибо за подсказку!
     
  20. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Пожалуйста.
     

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