Парсинг с условием

Тема в разделе "Решение различных задач по парсингу", создана пользователем sinoda, 19 янв 2024.

  1. sinoda

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

    Регистрация:
    10 фев 2012
    Сообщения:
    60
    Город:
    Москва
    Всем привет.
    Прошу помочь сформулировать условие в конструкции шаблона вывода.
    Парсинг ютуб по ключевикам. Есть 4 обычные границы - это код видео по ключевику. Парсим в два файла, первый это ютуб.txt только [G1:1] чтобы по этому файлу фильтровать повторы границ в процессе парсинга и второй ютуб.csv в котором [PARAM][CSVCS][G1:1].
    Парсить нужно только одну из 4 границ, т.е. один код видео [G1:1] или [G2:1] или и т.д. до [G4:1], смотря какую границу оставит фильтр. Т.е. если фильтр сработал и [G1:1] есть в файле ютуб.txt, то не сохраняем [G1:1] т.к. это повтор и значит парсим границу [G2:1] на тех же условиях и если фильтр не сработал и такого [G2:1] не было в ютуб.txt то с до записыванием переходим к следующему ключевику/ссылке в окне списка ссылок.
    Т.к. воспользоваться функцией shift+ctrl+f для фильтрации документов по ключевым словам не получится потому, что там только фильтрация и сохранен/не сохранен, а мне в случае не сохранен (отфильтрован т.к. уже есть в ютуб.txt) нужно перейти к [G2:1] или [G3:1] если и [G2:1] отфильтрована.

    Прошу помочь в этой "конструкции" сформулировать условие, что если [G1:1] есть в ютуб.txt то проверяем [G2:1 ]

    [CHECKENTRY([FILE(C:\ютуб\ютуб.txt|1|1)])][G1:1][ELSETEXT][SAVETOFILE:ютуб.csv{add}][PARAM][CSVCS][G1:1 ][/SAVETOFILE][SAVETOFILE:ютуб.txt{add}{notcsv}][G1:1 ][/SAVETOFILE][/CHECKENTRY]

    Прилагаю файл CDP с сылками и настроенными границами, в списке ссылок одно повторение по которому должен сработать фильтр.
     

    Вложения:

    • ютуб.cdp
      Размер файла:
      43,9 КБ
      Просмотров:
      2
    Последнее редактирование: 19 янв 2024
  2. sinoda

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

    Регистрация:
    10 фев 2012
    Сообщения:
    60
    Город:
    Москва
    Исходя из предложения https://forum.sbfactory.ru/threads/o-moschnom-checkentry-zamolvite-slovo.10431/#post-59099 сделал вложение не в [ELSETEXT], а в [THENTEXT] еще один макрос [CHECKENTRY], а в него еще и еще до [G4:1].
    сначала разбил на строки для наглядности логики
    [CHECKENTRY([FILE(C:\ютуб\ютуб.txt|1|1000000)])][G1:1][THENTEXT]
    [CHECKENTRY([FILE(C:\ютуб\ютуб.txt|1|1000000)])][G2:1][THENTEXT]
    [CHECKENTRY([FILE(C:\ютуб\ютуб.txt|1|1000000)])][G3:1][THENTEXT]
    [CHECKENTRY([FILE(C:\ютуб\ютуб.txt|1|1000000)])][G4:1]
    [ELSETEXT][SAVETOFILE:ютуб.csv{add}][PARAM][CSVCS][G4:1][/SAVETOFILE][SAVETOFILE:ютуб.txt{add}{notcsv}][G4:1][/SAVETOFILE][/CHECKENTRY]
    [ELSETEXT][SAVETOFILE:ютуб.csv{add}][PARAM][CSVCS][G3:1][/SAVETOFILE][SAVETOFILE:ютуб.txt{add}{notcsv}][G3:1][/SAVETOFILE][/CHECKENTRY]
    [ELSETEXT][SAVETOFILE:ютуб.csv{add}][PARAM][CSVCS][G2:1][/SAVETOFILE][SAVETOFILE:ютуб.txt{add}{notcsv}][G2:1][/SAVETOFILE][/CHECKENTRY]
    [ELSETEXT][SAVETOFILE:ютуб.csv{add}][PARAM][CSVCS][G1:1][/SAVETOFILE][SAVETOFILE:ютуб.txt{add}{notcsv}][G1:1][/SAVETOFILE][/CHECKENTRY]

    и после сложил это в одну строку:
    [CHECKENTRY([FILE(C:\ютуб\ютуб.txt|1|1000000)])][G1:1][THENTEXT][CHECKENTRY([FILE(C:\ютуб\ютуб.txt|1|1000000)])][G2:1][THENTEXT][CHECKENTRY([FILE(C:\ютуб\ютуб.txt|1|1000000)])][G3:1][THENTEXT][CHECKENTRY([FILE(C:\ютуб\ютуб.txt|1|1000000)])][G4:1][ELSETEXT][SAVETOFILE:ютуб.csv{add}][PARAM][CSVCS][G4:1][/SAVETOFILE][SAVETOFILE:ютуб.txt{add}{notcsv}][G4:1][/SAVETOFILE][/CHECKENTRY][ELSETEXT][SAVETOFILE:ютуб.csv{add}][PARAM][CSVCS][G3:1][/SAVETOFILE][SAVETOFILE:ютуб.txt{add}{notcsv}][G3:1][/SAVETOFILE][/CHECKENTRY][ELSETEXT][SAVETOFILE:ютуб.csv{add}][PARAM][CSVCS][G2:1][/SAVETOFILE][SAVETOFILE:ютуб.txt{add}{notcsv}][G2:1][/SAVETOFILE][/CHECKENTRY][ELSETEXT][SAVETOFILE:ютуб.csv{add}][PARAM][CSVCS][G1:1][/SAVETOFILE][SAVETOFILE:ютуб.txt{add}{notcsv}][G1:1][/SAVETOFILE][/CHECKENTRY]

    в результате всё равно в файле ютуб.txt повторы.
     

    Вложения:

    • ютуб-2.cdp
      Размер файла:
      44,6 КБ
      Просмотров:
      1
    Последнее редактирование: 19 янв 2024

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