Двойной [NEXTPAIR]

Тема в разделе "Решение различных задач по парсингу", создана пользователем kto-to, 21 дек 2014.

  1. kto-to

    kto-to Member Пользователи

    Регистрация:
    30 сен 2012
    Сообщения:
    17
    Добрый день, помогите пожалуйста.

    Работаю с макросом [DYNAMICVALUES], делаю замену кусков кода на [VALUE]: и [NEXTPAIR].
    Проблема в том, что из-за тотальной кривизны кода (даже в пределах описания одного товара) бывают ситуации, когда [NEXTPAIR] может дважды, трижды повторяться до соответствующего ему [VALUE]: (в роли [NEXTPAIR], как и в случае с [VALUE]:, из-за отсутствия четких границ выступают сразу несколько значений кода). Из-за этого в csv файле получаются непонятные столбцы.

    Пример, в котором работают замены
    specs_header|[NEXTPAIR]
    specs_key|[NEXTPAIR]
    ниже:

    <dt class="[NEXTPAIR]">Package Content</dt>
    <dd class="specs_data">
    <table class="specs_map">
    <tr>
    <td class="[NEXTPAIR]"><span>*</span></td>
    <td class="[VALUE]:"><span>1 Pair of Formal Shoes</span></td>
    </tr>
    </table>
    </dd>

    Как привести данный код к выводу одного столбца с названием "Package Content" и в этом случае значением "1 Pair of Formal Shoes"? И вообще как бороться с повальной для всех товаров кривизной кода?

    Возможно, решение может быть не сложным, но правда, уже не соображаю и в регулярках не силен.

    Пожалуйста, помогите разобраться.
     
  2. Root

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

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

    Пожалуйста, предоставьте адрес страницы товара.
     
  3. kto-to

    kto-to Member Пользователи

    Регистрация:
    30 сен 2012
    Сообщения:
    17
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
     
  4. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Меню - файл - загрузить проект...
     

    Вложения:

  5. kto-to

    kto-to Member Пользователи

    Регистрация:
    30 сен 2012
    Сообщения:
    17
    Спасибо, вы просто волшебник! (это говорят вам все мои нервные клетки)). Единственное, я не очень понимаю, почему в данном случае работает макрос [min]... В видео про парсинг таблиц из кода понятно было, а сейчас - нет. Или уже просто туплю...Если объясните, буду благодарен
     
  6. Root

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

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

    Ссылки недоступны для гостей
    В вашем случае этот параметр использовать не нужно.
     
  7. kto-to

    kto-to Member Пользователи

    Регистрация:
    30 сен 2012
    Сообщения:
    17
    В моем случае [MIN] использовать не нужно? Так вы сами в проект парсинга его внесли. И я теперь начинаю понимать, почему стало всё правильно работать. Двойной условно говоря [NEXTPAIR] создавал один столбец с пустыми ячейками. Макрос [MIN]2[/MIN] это убирал
     
  8. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    [MIN] Вставляется автоматически при вставке макроса [VERTTABLE]. В ссылке, которую вы мне показали, параметр [MIN] никакой роли не играет. Других ссылок вы не показывали...
     
  9. kto-to

    kto-to Member Пользователи

    Регистрация:
    30 сен 2012
    Сообщения:
    17
    Будьте добры, подскажите еще, как спарсить описание товара с этих страниц:

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

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Теперь вижу, что там "разноформатные" таблицы. Пока идей в голову не пришло, как их парсить разом.

    Как альтернативный вариант - задавать отдельную границу парсинга для каждой характеристики (Brand, Type, For...).

    С уважением к вам, Сергей...
     
  11. kto-to

    kto-to Member Пользователи

    Регистрация:
    30 сен 2012
    Сообщения:
    17
    К сожалению, это тоже не вариант, так как изначально не известны все возможные характеристики товаров. У каждого - они свои. А товаров - тысячи...
     
  12. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Согласен, но можно попробовать:
    1) Приводить все таблицы к единому формату и забирать через [DYNAMICVALUES] для Ultimate версии
    А как Вы думаете было раньше? Парсилось все сначала, потом генерировались тонны границ.
    2) Спарсить товарные позиции на предмет характеристик, Создать по ним море динамических границ, при этом проект будет ОЧЕНЬ, ну просто ОЧЕНЬ долго работать.
    3) Имхо я делаю так. Парсю все одной границей с разделителями своими. А потом макросом в екселе раскидываю поколоночно. Это ускоряет парсинг в разы, однако требует внешней обработки.
    4) Сменить донора.
     
  13. kto-to

    kto-to Member Пользователи

    Регистрация:
    30 сен 2012
    Сообщения:
    17
    Спасибо большое, что откликнулись. С большим трудом, но задачу кажется решил (по крайней мере на небольшом количестве разносортных описаний). Сейчас ломаю голову над приводящим в должный вид проект макросом в эксель. Где-то работа заканчивается, а где-то - лишь начало:)
    Но честно, сменить донора здесь - наилучший вариант...
     
  14. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Я пока не изучал подробно ваш сайт, но, думаю, там разных характеристик не больше 50 штук. Это никакая не проблема задать 50 динамических границ парсинга Ссылки недоступны для гостей
     
  15. kto-to

    kto-to Member Пользователи

    Регистрация:
    30 сен 2012
    Сообщения:
    17
    Нет, характеристик там просто в разы больше:) Единственное, с чем столкнулся - привожу разноименные столбцы со схожими именами к одному наименованию (через поиск замену), но редактор csv, даже видя столбцы с одинаковым названием, не объединяет их в один... Думал, тут проблем не будет. Что может быть не так?
     
  16. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Думаю, есть отличия в наименованиях столбцов (лишние переносы строк или пробелы, может еще какие символы различаются). Лучше прикрепить сюда два файла CSV, которые вы объединяете. Также указать, по каким столбцам производите слияние и уточнить, в какие именно строки не происходит запись данных.
     
  17. kto-to

    kto-to Member Пользователи

    Регистрация:
    30 сен 2012
    Сообщения:
    17
    Хм, вроде всё правил подчистую, убирая переносы и пробелы. Ладно, попробую еще {skip} поставить в конце каждого названия столбца
     
  18. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Можете разобраться, какие ячейки не склеиваются (и не склеиваются ли они). Проанализировать результат и сделать вывод, программная ли это ошибка. Я тестировал функцию слияния двух CSV неоднократно, проблем сейчас с ней не вижу.
     
  19. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Вам рекомендую подождать с решением вопроса парсинга того сайта еще пару дней. Мало ли, может я найду решение...
    PS: Не обещаю!
     
  20. kto-to

    kto-to Member Пользователи

    Регистрация:
    30 сен 2012
    Сообщения:
    17
    Так я написал в 13 сообщении, что вроде бы получилось спарсить) Но если предложите своё решение - буду благодарен...
     

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