Взятие повторяющихся границ

Discussion in 'Решение различных задач по парсингу' started by Serheo, Dec 7, 2020.

  1. Serheo

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

    Joined:
    Oct 13, 2018
    Messages:
    252
    Город:
    Москва
    Здравствуйте! Помогите решить задачку, пожалуйста.
    Есть такой код:
    HTML:
    <div id="thumbnail-qv" class="row js-qv-mask"><div class="product-images js-qv-product-images"><div class="thumb-container"> <label for="color-8" id="dc-8" data-color="8"> <img class="thumb js-thumb selected " src="https://www.italiamoda.pl/91094-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-8" id="dc-8" data-color="8"> <img class="thumb js-thumb selected " src="https://www.italiamoda.pl/91096-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-8" id="dc-8" data-color="8"> <img class="thumb js-thumb selected " src="https://www.italiamoda.pl/91095-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-8" id="dc-8" data-color="8"> <img class="thumb js-thumb selected " src="https://www.italiamoda.pl/91097-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-8" id="dc-8" data-color="8"> <img class="thumb js-thumb selected " src="https://www.italiamoda.pl/91098-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-32" id="dc-32" data-color="32"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91105-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-32" id="dc-32" data-color="32"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91103-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-32" id="dc-32" data-color="32"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91104-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-32" id="dc-32" data-color="32"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91106-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-15" id="dc-15" data-color="15"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91101-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-15" id="dc-15" data-color="15"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91099-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-15" id="dc-15" data-color="15"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91100-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-15" id="dc-15" data-color="15"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91102-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-9" id="dc-9" data-color="9"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91107-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-9" id="dc-9" data-color="9"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91110-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-9" id="dc-9" data-color="9"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91108-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-9" id="dc-9" data-color="9"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91109-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container"> <label for="color-9" id="dc-9" data-color="9"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91111-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div></div></div>
    Задача разбить его повторяющимися границами, чтобы в каждую границу попали строки с одинаковым data-color="N". Как это можно сделать?
     
  2. Root

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

    Joined:
    Mar 10, 2010
    Messages:
    14,818
    Город:
    Барнаул
    Здравствуйте.

    Мне непонятно, что требуется.

    Что за строки, если вы привели в пример HTML код, состоящий из одной строки.
    Что значит "попали строки" с одинаковыми data-color.

    Попробуйте изъясниться так, чтобы было понятно.

    Лучше сделать пример желаемого результата.
     
  3. Serheo

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

    Joined:
    Oct 13, 2018
    Messages:
    252
    Город:
    Москва
    HTML:
    <label for="color-8" id="dc-8" data-color="8"> <img class="thumb js-thumb selected " src="https://www.italiamoda.pl/91094-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container">
    
    <label for="color-8" id="dc-8" data-color="8"><img class="thumb js-thumb selected " src="https://www.italiamoda.pl/91096-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container">
    
    <label for="color-32" id="dc-32" data-color="32"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91105-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container">
    
    <label for="color-32" id="dc-32" data-color="32"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91103-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container">
    
    <label for="color-32" id="dc-32" data-color="32"> <img class="thumb js-thumb " src="https://www.italiamoda.pl/91104-home_default/dzianinowa-sukienka-z-golfem-o-grubym-splocie.jpg" alt="" title="" width="310" > </label></div><div class="thumb-container">
    Код разбил на строки и упростил. Надо, чтобы строки с label for="color-8" попали в один цикл повторяющейся границы, а строки с label for="color-32" - в другой. Блоков с разными "label for="color" может быть разное количество как и строк в каждом блоке. Изначально код идет одной строкой как было в первом посте, т.е. фактически это не строки, а куски кода.

    А задача в том, чтобы картинки попали в строки таблицы к соответствующим цветам. Порядок цветов и номеров в "label for="color-" совпадает.

    Есть идея удалить дубли вхождений "label for="color-", чтобы осталось только 1 первое вхождение и брать его в качестве границы, но как удалить эти дубли пока не придумал.
     
    Last edited: Dec 7, 2020
  4. Root

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

    Joined:
    Mar 10, 2010
    Messages:
    14,818
    Город:
    Барнаул
    Не вижу решения данного вопроса имеющимся функционалом.

    Если только написать для этого специальную функцию. Могу сделать это за 3000 рублей. Если интересно пишите в Whatsap
    Hidden Content:
    **Hidden Content: To see this hidden content your post count must be 100 or greater.**
     
  5. Serheo

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

    Joined:
    Oct 13, 2018
    Messages:
    252
    Город:
    Москва
    Не, все таки на эту задачу функционала хватает. Данный код для начала надо взять в обычную границу и в редакторе поиска/замен вставить код:
    Code:
    <label for|{br}<label for
    <img class|{br}<label for
    [DELSTRDUP]
    <label for="color|<ZACEP><label for="color
    <ZACEP>|[ONCE]
    {textend}|<ZACEP>
    После чего данные блоки можно легко взять в повторяющиеся границы.
     
    Root likes this.

Share This Page