Przejdź do treści głównej

Przegląd API

A-Parser obsługuje sterowanie przez API, co pozwala na integrację scrapera ze złożonymi systemami (np. SaaS), wykorzystując możliwości A-Parser z innych programów i skryptów.

API jest zaimplementowane w oparciu o protokół HTTP oraz serializację danych JSON i może być używane z dowolnego języka programowania.

curl http://127.0.0.1:9091/API \
-H 'Content-Type: application/json' \
-d '{"password":"123","action":"ping"}'

Wynik:

{"success":1,"data":"pong"}

Przykłady użycia

  • Wywoływanie i przetwarzanie pojedynczych lub pakietowych zapytań do dowolnego ze scraperów, na przykład:
    • Pobieranie listy linków z Google na zapytanie
    • Tłumaczenie tekstu za pomocą tłumacza Google Translate/Yandex Translate/DeepL
    • Pobieranie parametrów domeny, takich jak data rejestracji, ranking Alexa i wiele innych
  • Dodawanie zadań do kolejki i odbieranie wyników
  • Zarządzanie kolejką zadań i monitorowanie stanu zadań
  • Automatyzacja pracy farmy scraperów

Gotowe klienci

Dla A-Parser dostępne są gotowe klienci, które upraszczają pracę z API:

NodeJS

Perl

PHP

Python

Formowanie zapytania

Interakcja z A-Parserem odbywa się za pomocą protokołu HTTP z serializacją zapytania i odpowiedzi w formacie JSON. Aby wykonać zapytanie do API, należy wykonać zapytanie POST na adres:

http://IP-serwera:9091/API

Obowiązkowo muszą zostać przesłane nagłówki:

  • content-length
  • content-type: application/json

Jako treść zapytania wykorzystywana jest struktura zserializowana do JSON:

{
"password": "pass",
"action": "oneRequest",
"data": {
...
}
}

Gdzie:

  • password - hasło do A-Parser
  • action - wywoływana metoda API
  • data - parametry zapytania, specyficzne dla każdego typu zapytania, pełna lista i opis tutaj

Odpowiedź w ogólnej formie wygląda następująco:

{
"success": 1,
"data": "..."
}

Gdzie:

  • success - powodzenie zapytania API, może przyjmować wartość 1 lub 0
  • data - odpowiedź na wywołaną metodę, może być skalarne lub być obiektem, zależy od typu zapytania

Przykład kodu w PHP

Zalecamy korzystanie z klienta dla PHP, poniższy kod bez użycia klienta jest podany w celach informacyjnych:

$aparser = 'http://127.0.0.1:9091/API';

$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'];

Przykład kodu w Perl

Zalecamy korzystanie z klienta dla Perl, poniższy kod bez użycia klienta jest podany w celach informacyjnych:

use LWP;
use JSON::XS;

my $aparser = 'http://127.0.0.1:9091/API';

my $request = encode_json {
'action' => 'oneRequest',
'data' => {
'parser' => 'SE::Google',
'preset' => 'Pages Count use Proxy',
'query' => 'test'
},
'password' => 'pass'
};

my $ua = LWP::UserAgent->new();

my $response = $ua->post(
$aparser,
'Content-Type' => 'text/plain; charset=UTF-8',
'Content-Length' => length $request,
'Content' => $request
);

if($response->is_success) {
my $json = decode_json $response->content();
print $json->{'data'}->{'resultString'};
}
else {
warn 'Response fail: ', $response->status_line();
};

Pobieranie zapytania API w interfejsie

Aby uzyskać pełne zapytanie do API w Edytorze zadań, dostępna jest funkcja Show API query (Pobierz zapytanie API). Za jej pomocą można uzyskać pełny JSON do użycia w metodzie addTask

Pobieranie zapytania API

Redis API

Redis API jest alternatywnym sposobem integracji A-Parser poprzez serwer Redis, zapewniając większą elastyczność i wydajność w niektórych scenariach.

Więcej o Redis API

⏩ Przegląd wideo pracy z API