Программа неправильно делает перенос строк! Что делать?

Тема в разделе "Парсинг конкретных сайтов по запросу (ПЛАТНО)", создана пользователем Татьяна, 6 авг 2013.

  1. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Купили недавно программу Создали проект по всем инструкциям. Однако программа неправильно делает перенос строки и CSV файл не импортируется. Перенос происходит не в пределах одной ячейки, как нам надо, а на новую строку. Что делать? Может быть разработчик поможет разобраться? Отправила вам письмо на почту.
     
    Последнее редактирование: 6 авг 2013
  2. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Вы пробовали соблюдать формат документа csv и разделители колонок использовать не просто ; а ";" точку с запятой в кавычках?
    Попробуйте поможет, в предосмотре неправильно показываться будет но в екселе все без разбивки как положено.
     
  3. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Поставила в ковычки повторяющиеся границы. В экселе теперь все в одну строку, а мне надо, чтобы был перенос в рамках одного столбца. Как это сделать? В таком виде не хочет импортироваться в магазин на OpenCard.
     
  4. nikolas1612

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

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    CSV изначально не предназначен для переноса строки в рамках одной ячейки. между прочим, Exel - тоже, хоть это и можно реализовать путем танцев с бубном. так что программа здесь как раз не при чем.

    p.s. сделайте CSV в котором за перенос строки будет отвечать некий редкий набор символов. потом, уже в КСВ, через notepad++ сделайте массовую замену этих сочетаний на \r\n. может, все и получится, сам не пробовал.

    если речь идет не об одной ячейке, а о сдвиге столбца - тогда проект неправильно настроен, тут проблем нет.
     
    Последнее редактирование: 7 авг 2013
  5. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Получилось. Для переноса строк использовала {br} Сейчас возник другой вопрос - может кто пдскажет. Как спарсить кусок из текста который идет после слова By, оканчиваться может на символы запятой или точки. Ставлю начало границы парсига By - но что ставить в конец? Как сделать так, чтобы парсилось до точки ИЛИ до запятой, что первое попадется. Помогите!
     
  6. nikolas1612

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

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    в поиске-замене для загружаемого кода пропишите
    re:By[^\.,]*|$&<!!>
    теперь второй частью границы будет <!!>

    возможно, надо еще будет в функции htm2txt прописать этот тег в исключение, если опция активирована
     
  7. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Огромное спасибо!

    Еще всплыло, что кроме точки и запятой концом парсинга может быть восклицательный знак. Тогда так надо - re:By[^\.,!]*|$&<!!> ?
     
  8. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Еще всплыло, что окнчанием может быть звездочка - тогда так правильно будет?
    re:By[^\.,!*]*|$&<!!>
     
  9. nikolas1612

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

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    нет. звездочка и восклицательный знак - спецсимволы (воскл. знак - под вопросом, может быть в этой формуле и нет). поэтому так -

    re:By[^\.,\!\*]*|$&<!!>
     
  10. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Супер! Работает! Спасибо огромное!!!!! Это регулярное выражение, да? Может подскажете где почитать про них, чтобы научиться ими пользоваться?
     
  11. nikolas1612

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

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    Ссылки недоступны для гостей
    из всего что я смотрел - доступнее всего Википедия. единственная проблема - некоторые вещи, в ней описанные - в СД не работают. в частности, просмотр вперед и назад.
    но на практике вы до них вряд ли доберетесь, в них просто не будет нужды.

    а это то, что гарантированно должно работать - ибо выложено в разделе помощи к СД и являет собою родной модуль программы
    Ссылки недоступны для гостей
     
  12. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Спасибо.
     
  13. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Вот не знаю ответит ли кто в этой теме или другую создавать.
    Есть такой кусок страницы интернет-магазина.
    <ul id="size_thumb_detail">

    <input id="sizeSelectInput" name="sizeSelect" value="6" type="hidden" autocomplete="off" />
    <script>document.getElementById('size_disp').innerHTML='6';</script>


    <li style="" ><a id="displaySize_0" onmouseout="mouseOutNonSelectedSize(this,'6');" onmouseover="mouseOverNonSelectedSize(this,'6');" style="width:16px;" onclick="processSizeClick(this,'6','6','0','size_generic','6,7,8,9,10'); clearPreorderArriveDate();" class="size_generic_active" href="javascript:;" >6</a></li>

    <li style="" ><a id="displaySize_1" onmouseout="mouseOutNonSelectedSize(this,'7');" onmouseover="mouseOverNonSelectedSize(this,'7');" style="width:16px;" onclick="processSizeClick(this,'7','7','1','size_generic','6,7,8,9,10'); clearPreorderArriveDate();" class="size_generic" href="javascript:;" >7</a></li>

    <li style="" ><a id="displaySize_2" onmouseout="mouseOutNonSelectedSize(this,'8');" onmouseover="mouseOverNonSelectedSize(this,'8');" style="width:16px;" onclick="processSizeClick(this,'8','8','2','size_generic','6,7,8,9,10'); clearPreorderArriveDate();" class="size_generic" href="javascript:;" >8</a></li>

    <li style="" ><a id="displaySize_3" onmouseout="mouseOutNonSelectedSize(this,'9');" onmouseover="mouseOverNonSelectedSize(this,'9');" style="width:16px;" onclick="processSizeClick(this,'9','9','3','size_generic','6,7,8,9,10'); clearPreorderArriveDate();" class="size_generic" href="javascript:;" >9</a></li>

    <li style="" ><a id="displaySize_4" onmouseout="mouseOutNonSelectedSize(this,'10');" onmouseover="mouseOverNonSelectedSize(this,'10');" style="width:16px;" onclick="processSizeClick(this,'10','10','4','size_generic','6,7,8,9,10'); clearPreorderArriveDate();" class="size_generic" href="javascript:;" >10</a></li>

    </ul>

    Здесь указаны размеры и мне нужно их достать. Использую повторяющиеся границы, ставлю начало парсинга - class="size_generic_active" и конец парсинга </a></li> В настройках повторяющихся границ указываю Размер|[VALUE]|999|+|0.0000|+|0|+|0.00000000|1{br} Однако программа вообще ничего не достает. Не понимаю - почему она не находит размеры, если они между теми границами расположены. Помогите!
     
  14. Татьяна

    Татьяна New Member Пользователи

    Регистрация:
    6 авг 2013
    Сообщения:
    34
    Пробовала менять начало парсинга на разные варианты и на такой тоже class="size_generic_active" href="javascript:;" > - но все равно ничего не достает.
     
  15. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    <li начало и </li> конец
    достаточно указать
     

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