Parse custom result

2 июл 2015
  • В A-Parser существует возможность обрабатывать любой результат с помощью регулярного выражения, для этого используется опция Parse custom result:[​IMG]
    Основные варианты применения данной опции:
    • Поиск телефонов, емейлов и другой информации в сниппетах, в тексте на сайтах
    • Извлечение определенной части ссылки
    • Поиск по HTML документу произвольной информации используя парсер Net::HTTP Net::HTTP
    Описание работы:
    • В качестве Parse result выбирается результат от парсера, это может быть простой результат или массив
    • Регулярное выражение указывается без ограничителей, следом есть возможность указать флаг, описание типа регулярных выражений и поддерживаемых флагов можно найти в статье Использование регулярных выражений
    • В Result type указывается тип результата - Flat(простой результат) или Array(массив). Если в качестве исходного результата выбран массив или используется флаг g регулярного выражения то результат всегда будет сохраняться в массив. В поле Name указывается имя массива
    • Каждая захватывающая скобка регулярного выражения может быть сохранена как отдельный элемент, название элемента записывается в соответствующее поле $1 to, $2 to... - где цифра обозначает номер захватывающей скобки
      В поле RegEx можно использовать шаблонизатор, что позволяет использовать запрос как часть регулярного выражения
    Созданные новые результаты можно использовать при форматировании результатов, в конструкторе результатов, в фильтрации и уникализации результатов или в следующей опции Parse custom result
    Данная опция схожа с конструктором результатов при использовании RegEx Match
    Пример парсинга ссылок на картинки из исходного HTML кода [​IMG]

    • Используем парсер Net::HTTP Net::HTTP для получения исходного кода страницы
    • Применяем к $data(скачанная страница) регулярное выражение с флагами isg, результат сохраняем в массив images в элемент src
    • В формате результата указываем выводить все элементы src через перенос строки
    • Для запроса http://a-parser.com/ в файле результата получим следующий список: