-
Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 1500+ и мы растем!Скрыть объявление
Представление результатов
-
Содержание
A-Parser создавался для парсинга информации любых видов, для этого было введено 2 типа результатов:
- Простые результаты(Flat)
- Массивы результатов(Array)
SE::Google, скриншот выдачи:
Простые результаты(top)
Простые результаты - когда одному запросу соответствует один результат, примеры:
- Количество результатов по запросу ($totalcount)
- Является ли запрос опечаткой($misspell, на скриншоте не представлен)
- Значение PageRank($pr) в парсере
SE::Google::pR
- Значение тИЦ($tic) в парсере
SE::Yandex::TIC
- Количество ссылающихся доменов($domains), IP адресов($ips), беклинков($backlinks) и т.д. в парсере
Rank::MajesticSEO
Массивы результатов(top)
Массивы результатов - когда одному запросу соответствует список результатов, каждый элемент списка в свою очередь может содержать несколько вложенных элементов. Разберем на примере выдачи Google - она представлена в парсере массивом $serp, для наглядности воспользуемся таблицей, запишем первые 5 результатов выдачи:
Каждая позиция выдачи записывается в массив с 3мя вложенными элементами - ссылка($link), анкор($anchor), сниппет($snippet)
Другой пример - список связанных ключевых слов, который сохраняется в массиве $related:
Как видно в данном массиве всего один вложенный элемент - кейворд($key)
Нумерация элементов массивов начинается с 0, пример доступа к отдельным элементам массива:
- $serp.0.link - первая ссылка из выдачи
- $serp.3.anchor - четвертый анкор из выдачи
- $related.0.key - первый связанный кейворд
Просмотр возможных результатов(top)
Каждый парсер имеет свой набор результатов, просмотреть список доступных результатов можно наведя на парсер указателем, в всплывающей подсказке будет отображен список простых результатов и массивов, со списком вложенных элементов:Желтым отмечены результаты общие для всех парсеров:
- $query - запрос переданный парсеру после форматирования
- $query.orig - оригинальный запрос(в том виде как он был в файле или в поле ввода запросов)
- $query.first - первый запрос при использовании опций вложенного парсинга(Parse all results или Parse to level)
- $info.success - информация об успешности парсинга данного запроса
- $info.retries - количество использованных попыток для данного запроса
- $info.stats - статистика работы парсера для данного запроса
- $pages.$i.data - массив с необработанными ответами от сервера для возможности самостоятельного извлечения дополнительной информации
SE::Google:
- $related.$i.key - массив со списком связанных ключевых слов
- $ads с элементами $link, $anchor и $snippet - массив со списком объявлений
- $serp с элементами $link, $anchor и $snippet - массив с основной выдачей поисковика
Также доступна переменная $response, которая позволяет получать любые переменные запроса, включая все предыдущие редиректы.
Базовые принципы форматирования(top)
После того как парсер собрал данные в простых результатах и массивах, их необходимо отобразить(сохранить в файл) в нужном формате. Для удобства и функциональности в A-Parser'е используется Шаблонизатор Template Toolkit. Разберем часто используемые конструкции, для этого воспользуемся инструментом Тестирование шаблонов. Выберем проект для парсераSE::Google:
На скриншоте представлены 3 поля:
- JSON - внутреннее представление данных в парсере
- Template - шаблон, по которому происходит форматирование результата
- Результат - непосредственно преобразованные данные по указанному шаблону, именно в таком виде результат будет записан в файл
Выделим основные правила:
- Обычный текст выводится в результат как есть, без изменений
- Для вывода простых результатов необходимо в нужном месте вывести переменную содержащую нужный результат с префиксом $
- Для форматирования массивов используется метод format, о нем немного ниже
- \n отвечает за перенос строки
Форматирование массивов(top)
Форматирование массивов, разберем конструкцию:Код:$serp.format('$link $anchor\n$snippet\n\n')
Вывод значений переменных в JSON(top)
Вывод значений переменных в JSON:
Код:$results.json
Примеры
Вывод конкуренции по запросу(количества результатов по запросу) для всех парсеров поисковых систем(SE::Google,
SE::Yandex...):
Код:$query: $totalcount\n
Код:test: 3910000000 viagra: 278000000 окна пвх: 3220000 ...
Вывод ссылок с выдачи поисковых систем:Код:$serp.format('$link\n')
Код:http://www.speedtest.net/ http://www.speakeasy.net/speedtest/ http://en.wikipedia.org/wiki/Test_cricket http://www.humanmetrics.com/cgi-win/jtypes2.asp http://html5test.com/ http://test-ipv6.com/ ...
Вывод подсказок поисковых систем:Код:$results.format('$suggest\n')
Код:тестовый сервер танки онлайн тесты гиа по русскому языку тесто для блинов рецепт тестикула тесто для пиццы на молоке ...
Вывод статистики по ключевому слову используя парсерSE::Yandex::WordStat:
Код:тест - 11233054, updated: 30.04.2014 keywords: тест: 11233054 тест класс: 1319919 тест драйв: 1051495 тесты онлайн: 827044 тесто +для теста: 729279 тесты 2014: 592935 ... additional keywords: mail: 20449501 анекдоты: 1813239 анекдоты +из россии: 22754 анекдоты приколы: 9122 приколы: 4677777 test: 872855 ...