Задание обыкновенных границ парсинга внутри повторящихся границ

Тема в разделе "Границы парсинга", создана пользователем Bureau, 2 июн 2021.

  1. Bureau

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

    Регистрация:
    2 июн 2021
    Сообщения:
    24
    Дано:
    Код:
    "tags":{"total":7,"items":{"+1577":{"id":1577,"name":"\u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0442\u043e\u0432\u0430\u0440\u0430","link":"\/themes\/\u0432\u043e\u0437\u0432\u0440\u0430\u0442-\u0442\u043e\u0432\u0430\u0440\u0430\/"},"+7062":{"id":7062,"name":"\u0410\u043b\u0438\u044d\u043a\u0441\u043f\u0440\u0435\u0441\u0441","link":"\/themes\/\u0410\u043b\u0438\u044d\u043a\u0441\u043f\u0440\u0435\u0441\u0441\/"},"+10499":{"id":10499,"name":"\u0434\u043e\u0433\u043e\u0432\u043e\u0440","link":"\/themes\/\u0434\u043e\u0433\u043e\u0432\u043e\u0440\/"},"+10626":{"id":10626,"name":"\u043c\u0430\u0433\u0430\u0437\u0438\u043d","link":"\/themes\/\u043c\u0430\u0433\u0430\u0437\u0438\u043d\/"},"+10689":{"id":10689,"name":"\u043e\u043e\u043e","link":"\/themes\/\u043e\u043e\u043e\/"},"+10821":{"id":10821,"name":"\u0441\u0430\u0439\u0442","link":"\/themes\/\u0441\u0430\u0439\u0442\/"},"+10987":{"id":10987,"name":"\u044f\u043d\u0434\u0435\u043a\u0441","link":"\/themes\/\u044f\u043d\u0434\u0435\u043a\u0441\/"}}},
    
    Создаю границу обычного парсинга:
    Код:
    Начало: "tags":{"total":7,"items":{"
    Конец: },
    
    Как внутри нее задать границу повторяющуюся:
    Код:
    Начало: "+{skip}":{"id":{skip},"name":"
    Конец:  ","link":"/themes/{skip}/"},
    
    На выходе должно получиться:
    возврат товара, алиэкспресс, договор, магазин, ооо, сайт, яндекс

    PS: Пробовал просто через обычную границу и далее через функцию поиска-замены подставлял шаблон со {skip} - обрабатывает только первый элемент, все остальные игнорирует. Спасибо!
     
  2. inotoxic

    inotoxic Well-Known Member Пользователи

    Регистрация:
    13 сен 2015
    Сообщения:
    867
  3. Bureau

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

    Регистрация:
    2 июн 2021
    Сообщения:
    24
    Последнее редактирование: 2 июн 2021
  4. Achronis

    Achronis Well-Known Member Пользователи

    Регистрация:
    30 июл 2020
    Сообщения:
    64
    Город:
    Барнаул
    Здравствуйте!

    Заголовок созданой вами темы, противоречит её содержанию, но возможно вам помогут данные разделы системы помощи:
    1: Ссылки недоступны для гостей
    2:Ссылки недоступны для гостей
     
    Bureau и Root нравится это.
  5. Bureau

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

    Регистрация:
    2 июн 2021
    Сообщения:
    24
    Я наверное не корректно заполнил заголовок (но редактировать уже не могу). Проблема в том, чтобы ограничить границы повторящихся границ. Как я понял - это можно сделать ограничить их обычными границами (ибо в дальнейшем под шаблон со {skip} залетает еще N-количество строчек уже не из этого массива). Так вот - как ограничить?
     
  6. Achronis

    Achronis Well-Known Member Пользователи

    Регистрация:
    30 июл 2020
    Сообщения:
    64
    Город:
    Барнаул
    Нужно искать уникальные вхождения и привязываться к ним.

    К сожалению не видя кода, не представляется возможным помочь вам в данной ситуации.
     
    Bureau нравится это.
  7. Bureau

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

    Регистрация:
    2 июн 2021
    Сообщения:
    24
    Массив до массива tags такой:
    Код:
    "feedbacks":{"total":0,"items":[]},"files":{"total":0,"items":[]},"comments":{"total":0,"items":[]},"replyTo":4314394}}}}}}
    
    После массива tags:
    Код:
    "files":{"total":0,"items":[]}},
    
     
  8. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Вы цитируете ссылку с ответом на ваш вопрос. Прочтите материал по ссылке, там написано, как ограничить поиск циклов обычной границей парсинга.
     
    Bureau нравится это.
  9. Bureau

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

    Регистрация:
    2 июн 2021
    Сообщения:
    24
    Root, добрый день! Ссылку открывал, читал. Реализовал через 1 повторяющуюся границу вот таким образом (вдруг, кому интересны мои грабли):
    Код:
    Повторяющиеся границы:
    * Начало:
    "tags":{"total":{skip},"items":{
    * Конец:
    }},"files"
    Функции замены в повторяющихся границах:
    "+{skip}":{"id":{skip},"name":"|
    ","link":"{skip}"},|,
    ","link":"{skip}"}|
    
    Выводит всё, как и надо:
    Код:
    Tags: возврат товара,Алиэкспресс,договор,магазин,ооо,сайт,яндекс
    
     
    Root нравится это.
Similar Threads
  1. prah
    Ответов:
    2
    Просмотров:
    1.312
  2. siriusdesign
    Ответов:
    2
    Просмотров:
    918
  3. tax
    Ответов:
    10
    Просмотров:
    652
  4. strateg2010
    Ответов:
    4
    Просмотров:
    485
  5. vladimir4000
    Ответов:
    8
    Просмотров:
    454
Загрузка...

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