A parser addtask использовать заданные настройки

Видеоурок по работе с API, часть 2

Вторая часть из цикла уроков о работе с API A-Parser. В видео на реальных примерах показана работа с методами addTask, getTaskState, getTaskConf и getTaskResultsFile.

Пример работы с addTask

Доброе время суток, уважаемые читатели!
Как и было обещано в предыдущей статье, рассмотрим работу с методом addTask

В данном примере мы будем добавлять задание, собирающее email’ы с помощью парсера HTML::EmailExtractor.
Настройки задания в интерфейсе A-Parser выглядят так:

Как получить JSON с настройками для запроса API было рассмотрено в предыдущей статье.

Добавим в наш класс EngineWeb несколько методов, а именно :

  • GetEmailJson — метод формирующий json с настройками задания
  • addTaskEmail1 — метод отправляющий запрос API для добавления задания в очередь
  • CheckStatus — метод отправляющий запрос API для получения статуса задачи

Метод GetEmailJson принимает в качестве параметра ссылку на сайт, который будем парсить и подставляет его в формируемый json:

Проверяем:

Ответ со статусом задании получен получен.

Точно по такому же принципу можно получить ссылку на файл результата с помощью метода getTaskResultsFile и многое другое.

Документация по работе с А-Парсером через API доступна здесь.

A-Parser поддерживает управление через API, что позволяет интегрировать парсер в состав сложных систем, используя возможности парсера из других программ и скриптов

Смотрите обзор базовых возможностей A-Parser API и примеры запросов в наших видео уроках:


Содержание

Принцип работы (top)

Где:

  • success — успешность запроса
  • data — ответ, может быть скалярным или структурой, зависит от типа запроса
Читайте также:  Свежие интересные новости мира

Доступ к API может быть многопоточным

Модули управления A-Parser через API (top)

Примеры кода (top)

$request = json_encode (array(
‘action’ => ‘oneRequest’ ,
‘data’ => array (
‘parser’ => ‘SE::Google’ ,
‘preset’ => ‘Pages Count use Proxy’ ,
‘query’ => ‘test’
),
‘password’ => ‘pass’
));

$ch = curl_init ( $aparser );

curl_setopt ( $ch , CURLOPT_POST , 1 );
curl_setopt ( $ch , CURLOPT_POSTFIELDS , $request );
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true );
curl_setopt ( $ch , CURLOPT_HTTPHEADER , array( ‘Content-Length: ‘ . strlen ( $request )));
curl_setopt ( $ch , CURLOPT_HTTPHEADER , array( ‘Content-Type: text/plain; charset=UTF-8’ ));

$response = curl_exec ( $ch );
curl_close ( $ch );

$response = json_decode ( $response , true );
echo $response [ ‘data’ ][ ‘resultString’ ];

Список поддерживаемых запросов (top)

ping (top)

info (top)

Общая информация и список всех доступных парсеров:

oneRequest (top)

  • parser — каким парсером выполнять запрос
  • preset — какой использовать пресет
  • configPreset — какой конфиг потоков использовать
  • query — сам запрос
  • rawResults — опциональный параметр, если установлен то вместо результирующей строки resultString вернет массив results со всеми результатами, который поддерживает указанный парсер
  • needData — опциональный параметр, указывающий, передавать ли в ответе data/pages, используется для экономии памяти, по умолчанию отключен
  • options — массив с дополнительными опциями применямыми к парсеру, например overr >
  • resultString — строка результата
  • logs — массив с логами выполнения запроса

Пример запроса с указанием дополнительных параметров через options:

bulkRequest (top)

  • parser — каким парсером выполнять запрос
  • preset — какой использовать пресет
  • configPreset — какой конфиг потоков использовать
  • threads — количество потоков для парсинга
  • queries — массив запросов
  • rawResults — опциональный параметр, если установлен то вместо результирующей строки resultString вернет массив results со всеми результатами, который поддерживает указанный парсер
  • needData — опциональный параметр, указывающий, передавать ли в ответе data/pages, используется для экономии памяти, по умолчанию отключен
  • options — массив с дополнительными опциями применямыми к парсеру, например overr >