1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 800+ и мы растем!
    Скрыть объявление

Инструменты, доступные при использовании шаблонизатора

15 ноя 2019

  • Описание(top)

    В шаблонизаторе Template Toolkit доступна глобальная переменная $tools, которая хранит в себе набор инструментов доступных в любом шаблоне.
    $tools.error - содержит описание ошибок, которые могут возникнуть во время работы всех инструментов.

    $tools.memory.* - key/value хранилище в памяти(top)


    Простое хранилище в памяти, общее для всех заданий, апи запросов и т.д., обнуляется при перезапуске парсера
    • tools.memory.set(key, value) - устанавливает значение value для ключа key
    • tools.memory.get(key) - возвращает значение соответствующее ключу
    • tools.memory.delete(key) - удаляет из памяти запись

    $tools.sqlite.* - работа с базами данных SQLite(top)


    • $tools.sqlite.get - метод позволяющий получить информацию из БД с помощью SELECT
      Код:
      [% res = tools.sqlite.get('results/test.sqlite', 'SELECT COUNT(*) AS count FROM test') %]
    • $tools.sqlite.run - метод позволяющий выполнить операции с БД (INSERT, DROP и т.п.)
      Код:
      [% res = tools.sqlite.run('results/test.sqlite', 'INSERT INTO test VALUES(?)', 'test') %]
    • $tools.sqlite.all - метод позволяющий вывести все данные из таблицы

    $tools.ua - замена User agent(top)

    Данный инструмент предназначен для подмены User agent в парсерах, которые его используют (например Net::HTTP Net::HTTP).
    • $tools.ua.list - содержит список User agent
    • $tools.ua.random() - метод, выводит случайный User agent из списка
    Cписок всех User agent хранится в файле files/tools/user-agents.txtПри использовании данного инструмента для параметра User agent в парсерах, необходимо указывать его явно: [% tools.ua.random() %]
    [​IMG]

    $tools.query - добавление запросов(top)

    Данный инструмент позволяет добавлять запросы к уже существующим прямо во время работы задания, формируя их на основе уже спаршенных результатов. Может быть использован как аналог функции Parse to level в тех парсерах, где она не реализована.
    • [% tools.query.add(query, maxLevel) %] - добавляет одиночный запрос
    • [% tools.query.addAll(array, item, maxLevel) %] - добавляет массив запросов
    Параметр maxLevel указывает до какого уровня добавлять запросы, и является необязательным: если он опущен, то фактически парсер будет добавлять новые запросы пока они есть. Также рекомендуется включать опцию Уникальные запросы, чтобы избежать зацикливания и излишней работы парсера.
    [​IMG]
    Результат:

    $tools.parseJSON - разбор JSON структур(top)

    Данный инструмент позволяет десериализовать данные в формате JSON в переменные, доступные в шаблонизаторе.
    • [% tools.parseJSON(data) %] - запускает разбор структуры
    После десериализации к ключам из JSON массива можно обращаться как к обычным переменным и массивам.
    [​IMG]

    $tools.js.* - поддержка JS в tools(top)

    Данный инструмент позволяет добавлять свои JS функции и использовать их прямо в шаблонизаторе. С версии 1.2.527 поддерживается использование Node.js модулей.[​IMG]
    Функции добавляются в Редакторе JavaScript:
    [​IMG]

    $tools.base64.* - возможность кодировать и декодировать base64(top)

    Данный инструмент позволяет кодировать (encode) текст в base64 и декодировать (decode) обратно. Пример:
    [​IMG]

    $tools.data - встроенный справочник параметров(top)

    В данном инструменте содержится большое количество предустановленной информации - языки, регионы, домены для поисковых систем Google и Яндекс. Полный перечень элементов:
    ["YandexWordStatRegions","TopDomains","CountryCodes","YahooLocalDomains","GoogleDomains","BingTranslatorLangs","Top1000Words","GoogleLangs","GoogleInterfaceLangs","EnglishMonths","GoogleTrendsCountries"]
    каждый из которых представляет массив или хэш данных, посмотреть содержимое можно например так:
    Код:
    [% tools.data.GoogleDomains.json() %]

    $tools.CSVline - простое создание CSV файлов(top)

    Этот инструмент автоматически приводит значения к формату CSV и добавляет перенос строки, теперь в формате результата достаточно перечислить все переменные, на выходе будет валидный CSV файл, готовый для импорта в Google Docs/Excel/и т.д.
    Пример использования:
    Код:
    [% tools.CSVline(query, p1.serp.0.link, p2.title) %]

    $tools.aparser.version() - получение информации о версии A-Parser(top)

    Этот инструмент позволяет получить информацию о версии A-Parser и вывести ее в результат.

    Пример использования:
    Код:
    [% tools.aparser.version() %]