1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Пакетный Поиск-Замена в Конструкторе Результатов

Тема в разделе "Делимся опытом", создана пользователем Gorn, 14 дек 2017.

  1. Gorn

    Gorn A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    6 июл 2017
    Сообщения:
    87
    Симпатии:
    18
    При парсинге большого количества параметров (20-40шт) возникает необходимость чистить данные от иногда опадающего туда мусора - делать контекстный поиск-замену, как с регулярными выражениями, так и без, просто текст1 менять на текст2.
    Да, это сейчас можно делать поштучно для каждой переменной по одной замене, но это крайне неудобно... Если 10 переменных и в каждой надо 2-3 операции искать-заменить - будет 25 вставок Конструктора результатов, Это долго составлять и тормозит Апарсер.
    Сделал более 12 таких замен в пресете и процессор I7 нагрузился под 100% на всё время всего парсинга.
    Поштучно создавать конструктор результатов на каждую замену для каждой переменной (а их может быть много десятков) - очень долгий процесс, на пальце мозоль натрешь от колесика мыши.
    ПРЕДЛАГАЮ - сделать в конструкторе результатов (или другим простым и понятным способом) пакетную поиск-замену с регуляркой (и без) в виде таблицы:
    Выбор переменых для этого пакета поиска-замены (часто нужно сделать одинаковые операции для нескольких переменных):

    $tovar1, #cena, $address, $magazin
    таблица поиск-замена
    "ЧтоИщем" - "НаЧтоМеняем"
    "4" - "Четыре"
    ";;" - "\t"
    "№" - "#"
    " : - " "
    "\n" - ";"
    "1\d+[5]" - "больше миллиона"

    и так далее...

    Уверен, это такая фича облегчит многим составление пресетов и сделает Апарсер еще более удобным - не придется пользоваться дополнительными инструментами для чистки данных.
    Еще можно добавить параметры i s g для рег выражений.
     
  2. Gorn

    Gorn A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    6 июл 2017
    Сообщения:
    87
    Симпатии:
    18
    Может можно проще решить задачу с массовым поиском-заменой?
    Например создайте простые и понятные примеры, как это реализовать на JS...
     
  3. Gorn

    Gorn A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    6 июл 2017
    Сообщения:
    87
    Симпатии:
    18
    Неужели никто не подскажет ПРОСТОЙ и ПОНЯТНЫЙ способ делать пакетный поиск-замену?
     
    #3 Gorn, 16 дек 2017
    Последнее редактирование: 16 дек 2017
  4. Support Денис

    Support Денис A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    12 июн 2017
    Сообщения:
    586
    Симпатии:
    185
    Как вариант можно в формате результата сделать так .
    Код:
    [%
    mass = ['mytitle','metacontent'];
    FOREACH key = p1.keys;
        FOREACH value IN mass;
            IF value == key;
               p1.$value.replace(' ','_') _ "\n";
            END;
        END;
    END;
    %]
    В массив mass добавляются имена всех переменных в которых нужно провести замену.
     
    Metroid и Gorn нравится это.
  5. Gorn

    Gorn A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    6 июл 2017
    Сообщения:
    87
    Симпатии:
    18
    Это как раз то, что Доктор прописал!!!!!
    Супер+++
     

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