Вложенные однотипные тэги в повторяющихся границах

Тема в разделе "Границы парсинга", создана пользователем maxnemo, 28 мар 2015.

Статус темы:
Закрыта.
  1. maxnemo

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

    Регистрация:
    2 мар 2015
    Сообщения:
    32
    Добрый день.
    Помогите решить проблему точного выбора границ или какой-либо настройки для повторяющихся однотипных тегов (вопрос в конце).
    Есть контент:

    HTML:
    <div class="item">
    	<b class="name">
    		<a href="/block/13004/" data-url="">Название айтема 1</a>
    	</b>
    	<div class="details">
    		<span class="c" data-s="some1">
    			<span class="c2">
    				<a class="t"> 15
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    			<span class="c3">
    				<a class="t"> 16
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    			<span class="c2">
    				<a class="t"> 17
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    			<span class="c3">
    				<a class="t"> 18
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    			<span class="c2">
    				<a class="t"> 19
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    			<span class="c2"> 
    				<a class="t"> 20
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    		</span>
    		<span class="c" data-s="some2">
    			<span class="c2">
    				<a class="t"> 15
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    			<span class="c3">
    				<a class="t"> 16
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    			<span class="c2">
    				<a class="t"> 17
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    			<span class="c3">
    				<a class="t"> 18
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    			<span class="c2">
    				<a class="t"> 19
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    			<span class="c2">
    				<a class="t"> 20
    					<span class="buy">Купить</span>
    				</a>
    			</span>
    		</span>
    	</div>
    </div>

    Повторяющаяся граница 1: граница от
    HTML:
    " data-url=
    до
    HTML:
    <div class="item
    вывод: [GRAN1]>[CGRAN2]|


    Повторяющаяся граница 2:
    от
    HTML:
    <div class="details">
    до
    HTML:
    </div>
    вывод : [CGRAN3]

    Повторяющаяся граница 3:
    от
    HTML:
    <span class="c
    до
    HTML:
    </span
    вывод: [GRAN2]=[CGRAN4];

    Повторяющаяся граница 4:
    от
    HTML:
    <span class="c
    до
    HTML:
    </span
    вывод: [GRAN3],


    [GRAN1]

    от
    HTML:
    "">
    до
    HTML:
    <span
    [GRAN2]

    от
    HTML:
    data-s="
    до
    HTML:
    ">
    [GRAN3]

    от
    HTML:
    "t">
    до
    HTML:
    <span

    ИТОГО:
    А должно быть ТАК:
    Не выводятся остальные числа 16,17,18,19,20, потому что Повторяющаяся граница 3 срабатывает только на первый </span вложенный , а не на свой закрывающийся span тэг.
    Как мне для тэга <span class="c" data-s="some1"> найти свой </span> ,чтобы все числа в повторке спарсились ?
    Т.е нужно конец границы сделать правильным (выбрать нужный номер тега - родительский, а внутренних span может быть много).
     
    Последнее редактирование: 28 мар 2015
  2. maxnemo

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

    Регистрация:
    2 мар 2015
    Сообщения:
    32
    Больше года так и не решена проблема у меня =)
    Почему до сих пор не работают вложенные повторяющиеся границы внутри одинаковых тегов
    HTML:
    <div class="main">
    <div class="item">
    <b class="name"><a data-url="">Название_1</a></b>
    <span class="age">18+</span>
    <div class="model">
    <div class="times">
    <span data-date="27.11.2016">1</span>
    <span data-date="28.11.2016">2</span>
    <span data-date="29.11.2016">3</span>
    </div>
    </div>
    <div class="model">
    <div class="times">
    <span data-date="27.11.2016">1</span>
    <span data-date="28.11.2016">2</span>
    <span data-date="29.11.2016">3</span>
    </div>
    </div>
    </div>
    <div class="item">
    <b class="name"><a data-url="">Название_2</a></b>
    <span class="age">18+</span>
    <div class="model">
    <div class="times">
    <span data-date="27.11.2016">1</span>
    <span data-date="28.11.2016">2</span>
    <span data-date="29.11.2016">3</span>
    </div>
    </div>
    </div>
    <div class="item">
    <b class="name"><a data-url="">Название_3</a></b>
    <span class="age">18+</span>
    <div class="model">
    <div class="times">
    <span data-date="27.11.2016">1</span>
    <span data-date="28.11.2016">2</span>
    <span data-date="29.11.2016">3</span>
    </div>
    </div>
    </div>
    </div>

    <CD_CYCLE_GRAN_1!>

    Границы парсинга 1
    - границей от
    ""> до <span (дополнительная чистка тегов <{skip}>| и пробелов re: [\t\s]{2,300})| )


    Повторяющиеся границы 1 = [GRAN1]>[CGRAN2];
    - граница от <div class="item"> до </div>


    Повторяющиеся границы 2 = [VALUE];
    - граница от <div class="times"> до </div>

    Выводится:

    Название_1>;Название_2>;Название_3>;

    А должно:

    Название_1>123123;Название_2>123;Название_3>123;



    Может проблема с концом границ парсингов с DIV-ами ?

    Пока что на крайняк решил не использовать вложенные повторяющиеся границы, а тупо парсить всё подряд (всю страницу) и чистить регулярками и прочими штуками CD ненужные тэги.
     
    Последнее редактирование: 26 ноя 2016
  3. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Предоставьте пожалуйста пару ссылок где присутствуют такие таблицы, а также пример документа csv.
    Сложно разобраться в тексте где еще переделаны/затёрты теги.
     
  4. maxnemo

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

    Регистрация:
    2 мар 2015
    Сообщения:
    32
    Ссылки недоступны для гостей - Ссылка на файл «_project_test.cdp»
    Ссылки недоступны для гостей - Ссылка на файл «parse_text.csv»
     
    kagorec нравится это.
  5. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    [​IMG]
     

    Вложения:

    Root нравится это.
  6. maxnemo

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

    Регистрация:
    2 мар 2015
    Сообщения:
    32
    Со SPAN-ами то конечно работает ;), а я про одинаковые вложенные ТЭГИ. DIV в DIV-е и тд тп..
    Представьте что там сплошные вложенные DIV.:eek:
    Конкретно мне нужно именно чтобы Повторяющаяся граница 2 была в границах от <div class="times"> до </div>
    Хочется, чтобы парсер сначала шагал по всем <div class="items">, далее внутри каждого "items" - по всем внутренним <div class="times"> , т.к. кроме span, там могут быть и докучи других тэгов, которые я уже отдельно отформатирую.
    А внутри <span> могут быть такие же <span> и уже проблематично их выделить, т.к. теряется КОНЕЦ границы повторящихся границ где-то между границами...
     
    Последнее редактирование: 27 ноя 2016
  7. maxnemo

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

    Регистрация:
    2 мар 2015
    Сообщения:
    32
    Вот в идеале что я хочу спарсить с вложенными спан-ами и див-ами.
    Ссылки недоступны для гостей - Ссылка на файл «_project_test.cdp»
    Ссылки недоступны для гостей - Ссылка на файл «test.htm»
    И должно иметь такой вид:
    Код:
    Name_1>
    *2016-11-28=Info_11,Info_12;
    *2016-11-29=Info_13;
    *2016-11-30=Info_14,Info_15;
    *2016-11-28=Info_16;
    *2016-11-29=Info_17,Info_18;
    |
    Name_2>
    *2016-11-28=Info_21,Info_22;
    *2016-11-29=Info_23;
    *2016-11-30=Info_24,Info_25;
    *2016-11-28=Info_26;
    *2016-11-29=Info_27,Info_28;
    |
    Name_3>
    *2016-11-28=Info_21,Info_22;
    *2016-11-29=Info_23;
    *2016-11-30=Info_24,Info_25;
    |
    Но получается только с одними датами:
    Код:
    Name_1>*2016-11-28=;*2016-11-29=;*2016-11-30=;*2016-11-28=;*2016-11-29=|Name_2>*2016-11-28=;*2016-11-29=;*2016-11-30=;*2016-11-28=;*2016-11-29=|Name_3>*2016-11-28=;*2016-11-29=;*2016-11-30=|
     
  8. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Это на какойто тест похоже))
    Далее уже экспериментируйте самостоятельно со своими вариантами.

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

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

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

    Отправлять мне жалобы на человека, который вам БЕСПЛАТНО помогает, на мой взгляд, очень плохо!

    Вам тут никто ничем не обязан!

    Вот наши правила:

    2016-11-28_08-06-12.png
     
  10. Root

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

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

    2016-11-28_08-01-10.png

    В архиве файл проекта и файл "HTML".
     

    Вложения:

    • 123.zip
      Размер файла:
      6,6 КБ
      Просмотров:
      4
  11. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Заявленной(?) ошибки в программе нет!

    Проблема от того, что сложно учесть все нюансы при использовании, на мой взгляд, достаточно сложных "схем" и приемов. Возможно, есть моя вина в том, что я, на момент написания этого сообщения, еще не сделал более простые и более понятные элементы управления такими сложными(?) комбинациями задействованных функций.

    Вот, например, один из нюансов, который вы, возможно, не учли:

    2016-11-28_07-47-24.png
     
    Последнее редактирование: 28 ноя 2016
  12. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    В связи с тем, что, по условиям лицензионного соглашения Ссылки недоступны для гостей, в наши обязанности НЕ ВХОДИТ предоставление решений на БЕСПЛАТНОЙ основе (чем и является форум), мы в праве закрывать доступ на форум и блокировать пользователей без объяснения причин.

    Причина блокировки аккаунта Maxnemo является в выдвижении необоснованных требований в, на мой взгляд, нагловатой форме (жалоба на человека, который вам, якобы, плохо помогает, а он обязан? Нет, не обязан!).

    Зачем ему тратить свое время на другого человека, в ответ от которого он получает неблагодарность? Думаю, незачем! Это неприятно! И вести с таким человеком дело, как правило, больше не хочется!

    К вашему сведению:
    Владимир, на которого вы сделали жалобу, который вам реально пытался помочь, восстановил этот форум и, в большей степени, благодаря ему сейчас этот форум работает.

    Спасибо!
     
    Последнее редактирование: 28 ноя 2016
    kagorec нравится это.
Статус темы:
Закрыта.

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