В повторяющихся границах нужно парсить характеристики

Тема в разделе "Решение различных задач по парсингу", создана пользователем Kot, 1 фев 2014.

  1. Kot

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

    Регистрация:
    23 ноя 2012
    Сообщения:
    24
    Всем привет!
    В повторяющихся границах вот такой контент с характеристиками:

    HTML:
    >Gewindestange<br />Befestigungseinheit für isFang Dreibeinstativ auf 1 FangFix-Stein.<br /><br /><br />Fabrikat:&nbsp;&nbsp;&nbsp;&nbsp;OBO BETTERMANN<br />Typ:&nbsp;&nbsp;&nbsp;&nbsp;isFang 3B-G1<br />Länge:&nbsp;&nbsp;&nbsp;&nbsp;270mm<br />Werkstoff: &nbsp;&nbsp;Edelstahl, rostfrei Werkstoff 1.4301<br />Art.-Nr.:&nbsp;&nbsp;&nbsp;&nbsp;5408971<br /><br />Einheit:&nbsp;&nbsp;<br />
    Так удобнее для просмотра:
    КОД---> Gewindestange<br />Befestigungseinheit für isFang Dreibeinstativ auf 1 FangFix-Stein.<br /><br /><br />Fabrikat:&nbsp;&nbsp;&nbsp;&nbsp;OBO BETTERMANN<br />Typ:&nbsp;&nbsp;&nbsp;&nbsp;isFang 3B-G1<br />Länge:&nbsp;&nbsp;&nbsp;&nbsp;270mm<br />Werkstoff: &nbsp;&nbsp;Edelstahl, rostfrei Werkstoff 1.4301<br />Art.-Nr.:&nbsp;&nbsp;&nbsp;&nbsp;5408971<br /><br />Einheit:&nbsp;&nbsp;<br /> <---КОД

    Мне нужно спарсить названия характеристик, типа "Fabrikat", "Länge" и т.д., т.е. они между "<br />" и ":" (двоеточие). Также их значания - это после ":", соответственно. Характеристики могут быть разные, их порядка 180-200 штук. У меня версия CD 8 с возможностью задавать до 20-ти характеристик. В общем, если в ручную искать на сайте из порядка 10 тыс.тов. эти характеристики, а потом делать 10 конфигов для парсинга - это такой гимор...

    На данный момент могу парсить в каждую ячейку CSV-файла название характеристики и ее значение, т.е. будет так "Länge: 270mm". Нужно разбить именно при парсинге. Я конечно могу сделать макрос в Excel потом и все привести в нужный вид, но... ведь хочется все максимально удобно сделать.

    Вот такая не хитрая задача. Кто может помочь?
     
    Последнее редактирование: 2 фев 2014
  2. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Проект пожалуйста выложите, либо дайте ссылку на место, где обитают параметры.
    Нашел ваш сайт для парсинга Ссылки недоступны для гостей (почему так трудно указать откуда данные?) меняете id от 0 до 500000 и вот вам море товаров.
    Я бы на Вашем месте, сделал так:
    Загнал в повтор границы <span style="font-size:10pt;font-family:Arial;"> </span>
    В доп настройках поставил [VALUE][CSVCS] и разделять повторяющиеся [CSVCS].
    И вы получаете строку с разбивкой по колонкам.
    Правда как потом сводить концы со всеми другими товарами?
    Можно конечно спарсить все товары, и прописать все наименования, а потом динамически их описать, но это геморно.
    Ради интереса, покажите откуда вы тянете страницу.
     
    Последнее редактирование: 2 фев 2014
  3. Kot

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

    Регистрация:
    23 ноя 2012
    Сообщения:
    24
    Беру с официального сайта производителя (локализация немецкая) и после захода надо кликнуть на закладку "Ausschreibungstexte" и далее кликнуть, например, на первый товар "isFang 3B-G1": Ссылки недоступны для гостей

    На официальном сайте совсем другой расклад по структуре. И, как видите, для разных товаров, разные характеристики. Вот еще ссылка для примера: Ссылки недоступны для гостей. Их достаточно много и они задаются совместно со значениями внутри тегов, а не раздельно - вот это и проблема для мня.
     
    Последнее редактирование: 2 фев 2014
  4. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Kot, простите, сейчас не могу сразу вникнуть в вашу проблему, так как времени на это сейчас нет. А сходу не получилось. Неясно много нюансов. Желательно прикалывать файл проекта к постам (если не хотите его светить, я не навязываю, просто как вариант: заказать настройку у людей Ссылки недоступны для гостей)

    Вот посмотрите, может вам что подойдет:
    Ссылки недоступны для гостей - подгрузка данных по любой заданной ссылке (и аналог ему GETMORECYCLECONTENT (работает как повторяющиеся границы)).

    Если зададите более конкретные вопросы по определенным моментам, я постараюсь на них ответить. Обращайтесь, будем рады помочь!

    С уважением к вам, Сергей.
     
  5. Kot

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

    Регистрация:
    23 ноя 2012
    Сообщения:
    24
    Вот код в повторяющихся границах:
    КОД---> Gewindestange<br />Befestigungseinheit für isFang Dreibeinstativ auf 1 FangFix-Stein.<br /><br /><br />Fabrikat:&nbsp;&nbsp;&nbsp;&nbsp;OBO BETTERMANN<br />Typ:&nbsp;&nbsp;&nbsp;&nbsp;isFang 3B-G1<br />Länge:&nbsp;&nbsp;&nbsp;&nbsp;270mm<br />Werkstoff: &nbsp;&nbsp;Edelstahl, rostfrei Werkstoff 1.4301<br />Art.-Nr.:&nbsp;&nbsp;&nbsp;&nbsp;5408971<br /><br />Einheit:&nbsp;&nbsp;<br /> <---КОД

    Из него вытаскиваются такие колонки в CSV:
    Gewindestange / Befestigungseinheit fur isFang Dreibeinstativ auf 1 FangFix-Stein. / Fabrikat: OBO BETTERMANN / Typ: isFang 3B-G1 / и т.д.

    А нужно:
    Fabrikat / Typ
    и под этими названиями, их соответствия (значения):
    OBO BETTERMANN / isFang 3B-G1

    И не понял что понимать под файлом проекта? Кофиг парсера?
     
  6. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Как вы хотите не сделать.
    Файл проекта - "конфиг"
    Рекомендую обновиться и задавать сколько угодно границ парсинга для характеристик.
     
  7. Kot

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

    Регистрация:
    23 ноя 2012
    Сообщения:
    24
    Чтобы понять, какие характеристики парсить с сайта, нужно все их найти в ручную, как я понимаю и потом происать для них границы. Этих характеристик где-то 200 штук. Это долго ведь... Мне всего лишь нужно находить названия характеристики (что стоит до ":") и значение этой характеристики (то, что после ":"). Не пойму, как это вытаскивать.

    Прикрепил файл проекта
     

    Вложения:

  8. Kot

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

    Регистрация:
    23 ноя 2012
    Сообщения:
    24
    Спасибо, Сергей! Но каждый раз разные характеристики вылезают )), а их может быть и более 200 шт, и надо весь сайт пройти в рукопашную, чтобы эти характеристики найти и описать, как в примере в видео-ролике. В этом случае я хочу разбирать на запчасти эту строку кода, если можно так выразиться. В моем примере, как Вы видите, можно вытащить в таком виде и в каждый столбик - "ХАРАКТЕРИСТИКА1: ЗНАЧЕНИЕ1", "ХАРАКТЕРИСТИКА2: ЗНАЧЕНИЕ2" и т.д.

    А нужно разделять на название характеристики "ХАРАКТЕРИСТИКА" и на ее значение "ЗНАЧЕНИЕ".
     
    Последнее редактирование: 2 фев 2014
  9. Root

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

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

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

    Регистрация:
    23 ноя 2012
    Сообщения:
    24
    Я бы сам, но с регулярными не знаком. Не пойму, как это сделать.
     
  11. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Все равно я не понял чем вас не устраивает Ссылки недоступны для гостей переберите все товары и все.
    Вот ваш
    Ссылки недоступны для гостей
    =
    Ссылки недоступны для гостей
    Я Вам писал ниже, парсите все n-е количество товаров. Создаете 500 границ и тогда каждый товар будет идти именно так как Вы хотите.
    Замените :|; в значениях поиск/замена границы Ссылки недоступны для гостей
     
    Последнее редактирование: 2 фев 2014
  12. Kot

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

    Регистрация:
    23 ноя 2012
    Сообщения:
    24
    Ссылки с сайта, который Вы нашли - это здорово, они идеальны и для прасинга и для сбора данных, НО я хочу с оригинала брать, именно с сайта производителя, т.к. только там поддерживается вся актуальная информация. Это же логично. Да, спасибо, Вам за этот сайт, возможно что-то отсюда тоже смогу взять, есть 2-3 производителя нужных. Но этот сайт, как запасной аэродром, если не найду информацию у производителя на официальном сайте или же не смогу спарсить контент.

    Проблему пока не решил. Но Root (Сергей) подсказал, куда копать - регулярки в поиск|замена, но в регулярках я не силен еще...
     
    Последнее редактирование: 2 фев 2014
  13. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Может покажете отличие?
    <br> заменяете на [CSVCS]
    : на [CSVLB]

    А вообще, если вы очень сильно хотите получать именно тот вид: Чтоб характеристики били на своих местах, я бы сделал так.
    1) парсим полностью блок характеристик в единый html
    2) вставляем визуальную часть в excel (без тегов)
    3) сортируем
    4) находим все значения с :
    5) получаем название характеристик
    6) формируем в том же екселе динамические характеристики для контента
    7) вставляем в контент
    8) получаем нужный результат.
    Я обычно так и делаю.
     
  14. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Во-первых: там нужно уметь пользоваться не регулярками, а макросами {skip} (это просто Ссылки недоступны для гостей). Отсечь сначала все лишнее, потом заменить нужные символы на разделителя ячеек.

    Во-вторых: я уже выше писал о том, что как вы хотите не сделать, получится только так: характеристика|значение|характеристика|значение|характеристика|значение|характеристика|... - вот и сделайте такое обычными несколькими поиск-заменами. Ничего выдумывать не надо, все просто.

    У вас наверняка возникнет вопрос, что с этим делать:
    характеристика|значение|характеристика|значение|характеристика|значение|характеристика|...
    Есть магазины, которые это переваривают, может посмотреть в сторону них?

    С уважением к вам, Сергей.
     
  15. Kot

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

    Регистрация:
    23 ноя 2012
    Сообщения:
    24
    Сергей, получилось пока вот так http://forum.sbfactory.ru/showpost.php?p=8645&postcount=32 . Если бы в теги (по своему оформленные) эти результаты заключить, то в шаблоне можно было бы сделать (сортировать вывод) вывод таблицей: 1-ая строка - это названия характеристик; 2-я строка - это их значения. Есть мысли, как в теги или метки это все вогнать?
     
  16. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Kot, простите, но я не могу в ближайшее время ВПЛОТНУЮ подойти к изучению вашего вопроса. Очень жаль, что я не смог сейчас найти решение вашей задачи.

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

    Хочу посоветовать вам (если я в праве это делать =) ) разложить задачу на некие мелкие этапы и поочередно их решить.

    Еще раз отмечу, что в какую сторону думать - я вам уже сказал: привести функциями поиск-замены ваш контент к нужному формату - характеристика;значение;характеристика2;значение2...

    Буду рад, если будете обращаться снова! Искренне желаю вам успехов! Спасибо!
     
  17. Kot

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

    Регистрация:
    23 ноя 2012
    Сообщения:
    24
    Ок.

    Ну что же, пока задача не решена, тема открыта... :think:
     
  18. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Думаю - это и есть единственное решение вашего вопроса)
     
  19. Kot

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

    Регистрация:
    23 ноя 2012
    Сообщения:
    24
    Я уже привел к такому виду. Остались нюансы небольшие - поможет скорее всего регулярка.
     
  20. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Это хорошо. Господин Kagorec или Nikolas, вы же сильны в регулярках, прошу помочь мистеру Kot'у. Насколько я понял, с этим вопросом http://forum.sbfactory.ru/showpost.php?p=8645&postcount=32
    Спасибо!
     

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