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

8 фев 2016

  • Концепция фильтрования результатов(top)

    В A-Parser'е существует возможность фильтровать результаты по набору определенных правил и сохранять в результат только необходимые данные. Основные варианты применения:
    • Сохранение только тех ссылок, которые содержат определенное вхождение строки(например признак CMS)
    • Фильтрация базы доменов по определенным параметрам(например PR от 3, Alexa до 100000, язык EN)
    • Проверка ответа от сервера(например 200 OK или содержание определенных заголовков)
    • Проверка нахождения в сниппете исходного запроса
    • Любые другие варианты применения где требуется ограничить результаты по определенным условиям

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

    [​IMG]
    Фильтровать можно как одиночные результаты так и массивы результатов(Представление результатов), существует несколько типов фильтров:
    • По равности или неравности строк
    • По вхождению или отсутствию вхождения подстроки
    • По соответствию или не соответствию регулярному выражению
    • Числовые значения можно фильтровать по больше, меньше и равенству

    Особенности работы(top)


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

    Примеры использования(top)

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

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

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

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

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

    Для фильтрации ссылок по нескольким разным строкам воспользуемся возможностью указывать регулярные выражения, для этого запишем несколько признаков через разделитель
    Код:
    showthread\.php
    /forum/
    viewtopic\.php\?t=
    
    Обратите внимание что регулярные выражения требуют экранировать ряд символов[​IMG]

    Сохранение сайтов с определённым Google PageRank(top)

    Сохраняем только сайты с PR больше 4:
    [​IMG]

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

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

    [​IMG]