Перейти к основному содержимому

Фильтры результатов

В A-Parser'е существует возможность фильтровать результаты по набору определенных правил и сохранять в результат только необходимые данные.

Использование фильтрации#

Основные варианты применения:

  • Сохранение только тех ссылок, которые содержат определенное вхождение строки(например признак CMS)
  • Фильтрация базы доменов по определенным параметрам(например Яндекс ИКС от 300, Alexa до 100000, язык RU)
  • Проверка ответа от сервера(например 200 OK или содержание определенных заголовков)
  • Проверка нахождения в сниппете исходного запроса
  • Любые другие варианты применения где требуется ограничить результаты по определенным условиям

Фильтры можно добавить в Редакторе заданий, кликнув по иконке с инструментом напротив необходимого парсера: опция Фильтр в Редакторе заданий

Типы фильтрации {filter-types}#

Фильтровать можно как одиночные результаты так и массивы результатов(Представление результатов), существует несколько типов фильтров:

  • По равности или неравности строк
  • По вхождению или отсутствию вхождения подстроки
  • По соответствию или не соответствию регулярному выражению
  • Числовые значения можно фильтровать по больше, меньше и равенству

Особенности работы#

  • При фильтровании массивов результатов, в массиве остаются результаты только подпадающие под фильтр
  • При фильтровании простых результатов, если результат не подпадает под фильтр, то результат для данного запроса целиком пропускается, в т.ч. при использовании нескольких парсеров
  • При использовании двух и более фильтров в задании между ними применяется логическое И, другими словами результат сохранится если будет подпадать под условия всех фильтров одновременно
  • При сравнении в поле указания значения(строки, регулярного выражения или числового значения) можно использовать шаблонизатор Template Toolkit, доступны все переменные аналогичные для Общего формата результатов

Примеры#

Фильтрация по тексту на странице#

Проверка базы сайтов на нахождение определенного текста на странице.

В качестве запросов используем файл с ссылками, в результате получаем файл с ссылками, где встречается искомый текст

Используем парсер Net::HTTPNet::HTTP для скачивания искомой страницы, в результат сохраняем запрос(ссылку которую проверяем). Фильтруем результат $data - контент скачанной страницы, тип фильтра Contain string(содержит строку) и указываем саму строку:

Пример фильтрации по тексту на странице

Фильтрация картинок по размеру#

Фильтрация картинок по разрешению.

Фильтруем высоту и ширину картинки при парсинге через SE::Google::ImagesSE::Google::Images, сохраняем только те картинки которые больше 500х500 пикселей:

Пример фильтрации картинок по размеру

Фильтрация по нескольким признакам#

Фильтрация ссылок по вхождению любой из нескольких разных строк.

Для фильтрации ссылок по нескольким разным строкам воспользуемся возможностью указывать регулярные выражения, для этого запишем несколько признаков через разделитель:

showthread\.php
/forum/
viewtopic\.php\?t=
note

Обратите внимание что регулярные выражения требуют экранировать ряд символов

Пример фильтрации по нескольким признакам

Фильтрация по определённому параметру#

Сохранение сайтов с определённым Alexa Rank.

Сохраняем только сайты с Alexa Rank больше 100:

Пример фильтрации по определённому параметру

Использование запроса в фильтре#

Сохранение сниппетов Google в которых содержится исходный запрос.

В качестве строки для сравнения явно указываем [% query %] - переменную которая содержит запрос, выбираем Учитывать регистр(Sensitive) для поиска подстроки с учетом регистра символов:

Использование запроса в фильтре

Последнее обновление