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

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

  1. Dreadnought

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

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


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

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


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

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

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

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

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

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

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

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

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

    Регистрация:
    21 ноя 2014
    Сообщения:
    101
    Конечно же есть)
    Я вам о чём...
    <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
    Сообщения:
    3.694
    Город:
    Riga
    Вы почти сами ответили себе на вопрос:)
    DYNAMICVALUE использовать обязательно в конце всех колонок!
     
  7. Dreadnought

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

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

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

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

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

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

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

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

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

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