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

15 мар 2016


  • Для форматирования результатов в A-Parser'е применяется Шаблонизатор Template Toolkit, что позволяет легко сохранять результаты парсинга в различных форматах:
    • В текстовых файлах списком: по одному результату на строку, через разделитель, в произвольном формате
    • В файлах CSV с возможностью дальнейшего импорта в Excel, Google Docs и т.п.
    • В XML, JSON и других форматах хранения данных
    • В HTML на лету генерируя страницы
    • В формате SQL дампов для прямого импорта в базу данных
    • В бинарном формате для сохранения изображений(jpg, png, gif, ...), документов(pdf, docx, ...), исполняемых файлов и архивов(exe, dmg, zip, ...) и любых других типов данных
    Рекомендуется ознакомиться со статьей документации Представление результатов и базовые принципы форматирования и с подробным руководством по шаблонизатору Template Toolkit

    Редактирование формата результата(top)


    Формат результата - позволяет форматировать результаты к нужному виду используя шаблоны, применяется для каждой комбинации запрос-результаты
    [​IMG]

    • Общий формат результата задается в поле Формат результата
    • Формат результата для каждого парсера отдельно можно задать в настройках парсера в Result format
    A-Parser поддерживает работу с несколькими парсерами в одном задании, в общем формате результатов необходимо указывать от какого парсера выводить результат
    • $p1 - результаты от первого парсера(SE::Google SE::Google на скриншоте), $p2 - результаты от второго парсера(SE::Bing SE::Bing на скриншоте)
    • Порядковый номер парсера отображается слева от поля выбора парсера
    • $p1.preset и $p2.preset подразумевает что необходимо взять значение формата результата из настроек соответствующих парсеров
    • В данном примере $p1.preset можно заменить на $p1.serp.format('$link\n') что будет иметь одинаковый эффект, при этом формат результата из настроек уже использоваться не будет

    Формат результата можно указывать в удобном многострочном редакторе кликнув по соответствующей иконке в поле редактирования:
    [​IMG]
    В общем формате результатов доступны следующие переменные:
    • $query - запрос после форматирования
    • $query.* - все переменные относящиеся к запросу, описаны в статье Шаблоны в запросах
    • $p1, $p2, ... - переменные для доступа к результатам парсинга для каждого парсера отдельно(Просмотр возможных результатов для каждого парсера)
    • $p1.query, $p2.query, ... - запросы после форматирования с учетом формата запроса указанного в настройках каждого парсера


    Начальный и конечный текст(top)


    A-Parser может подставлять начальный и конечный текст в файл результата:
    • Для формирования шапки CSV файла
    • Для начальных и конечных тегов XML файла
    • Для хедера, шапки и футера HTML файлов
    • Для любых других вариантов применения
    Чтобы активировать данную возможность необходимо кликнуть по кнопке [​IMG] в нижней части Редактора заданий

    [​IMG]

    В начальном и конечном тексте поддерживается использование шаблонизатора Template Toolkit, доступные переменные:
    • $query - запрос после форматирования
    • $query.* - все переменные относящиеся к запросу, описаны в статье Шаблоны в запросах
    Данные переменные доступны только при сохранение каждого запроса в отдельный файл

    Формат имени файла результатов(top)


    A-Parser позволяет использовать шаблоны также в именах результирующих файлов, что позволяет автоматически создавать файлы и папки на основе текущей даты, по порядковому номеру запроса, по самому запросу и в любом другом формате
    [​IMG]
    В поле Имя файла поддерживаются следующие переменные:
    • Все переменные доступные для Общего формата результата
    • $queriesfile - путь и имя файла с запросами, если запросы указаны через форму то будет содержать queries_from_text.txt
    • $datefile - объект плагина date шаблонизатора Template Toolkit, настроенный на формат даты %b-%d_%H-%M-%S, при форматировании выдаёт текущее время и дату в виде May-08_20-08-38, формат возможно изменить в Дополнительных настройках
    По умолчанию имя файла создаётся по дате и времени на момент старта задания

    Комплексный пример
    Код:
    reports/$queriesfile/${query}.txt

    • Будет создана папка reports
    • Будет создана подпапка с именем файла запросов
    • В подпапке будет создано столько файлов сколько запросов используется в задании, в качестве имени файла будет использоваться сам запрос с расширением .txt
    Переменная $query записана в формате ${query} для того чтобы предотвратить интерполяцию расширения .txt как части переменной, подробнее в документации по шаблонизатору Template Toolkit