Zum Hauptinhalt springen

API-Übersicht

A-Parser unterstützt die Steuerung über eine API, was es ermöglicht, den Parser in komplexe Systeme (z. B. SaaS) zu integrieren und die Funktionen von A-Parser aus anderen Programmen und Skripten zu nutzen.

Die API ist auf Basis des HTTP-Protokolls und der JSON-Datenserialisierung implementiert und kann von jeder Programmiersprache aus verwendet werden.

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

Ergebnis:

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

Beispiele für die Verwendung

  • Aufruf und Verarbeitung von Einzel- oder Batch-Anfragen an einen der Scraper, zum Beispiel:
    • Abrufen einer Liste von Links von Google auf Anfrage
    • Textübersetzung über Google Translate/Yandex Translate/DeepL
    • Abrufen von Domain-Parametern wie Registrierungsdatum, Alexa Rank und vielen anderen
  • Hinzufügen von Aufgaben zur Aufgabenwarteschlange und Abrufen von Ergebnissen
  • Verwaltung der Aufgabenwarteschlange und Kontrolle des Aufgabenstatus
  • Automatisierung des Betriebs einer Parser-Farm

Fertige Clients

Für A-Parser gibt es fertige Clients, die die Arbeit mit der API vereinfachen:

NodeJS

Perl

PHP

Python

Erstellung einer Anfrage

Die Interaktion mit A-Parser erfolgt über das HTTP-Protokoll mit JSON-Serialisierung von Anfrage und Antwort. Um eine Anfrage an die API zu stellen, muss ein POST-Request an folgende Adresse gesendet werden:

http://IP-Server:9091/API

Folgende Header müssen zwingend übermittelt werden:

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

Als Anfrage-Body wird eine JSON-serialisierte Struktur verwendet:

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

Wobei:

  • password - das Passwort für A-Parser
  • action - die aufgerufene API-Methode
  • data - Anfrageparameter, spezifisch für jeden Anfragetyp; eine vollständige Liste und Beschreibung finden Sie hier

Die Antwort sieht im Allgemeinen so aus:

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

Wobei:

  • success - Erfolg der API-Anfrage, kann den Wert 1 oder 0 annehmen
  • data - Antwort auf die aufgerufene Methode, kann ein Skalar oder ein Objekt sein, abhängig vom Anfragetyp

Codebeispiel in PHP

Wir empfehlen die Verwendung des Clients für PHP. Dieser Code ohne Verwendung des Clients dient nur zu Informationszwecken:

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

Codebeispiel in Perl

Wir empfehlen die Verwendung des Clients für Perl. Dieser Code ohne Verwendung des Clients dient nur zu Informationszwecken:

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();
};

API-Anfrage im Interface abrufen

Um eine vollständige API-Anfrage im Task-Editor zu erhalten, gibt es die Funktion API-Anfrage abrufen. Damit lässt sich das vollständige JSON für die Verwendung in der Methode addTask generieren.

API-Anfrage abrufen

Redis API

Die Redis API ist eine alternative Methode zur Integration von A-Parser über einen Redis-Server und bietet in bestimmten Szenarien mehr Flexibilität und Leistung.

Mehr über die Redis API

⏩ Video-Übersicht zur Arbeit mit der API