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
- NodeJS
- Perl
- Python
- PHP
curl http://127.0.0.1:9091/API \
-H 'Content-Type: application/json' \
-d '{"password":"123","action":"ping"}'
Ergebnis:
{"success":1,"data":"pong"}
const AParserClient = require('a-parser-client');
const AParser = new AParserClient('http://127.0.0.1:9091/API', '123');
AParser.ping()
.then(reply => console.log(reply.data))
.catch(err => console.log(err));
use AParser;
use Data::Dumper;
my $parser = AParser->new('http://127.0.0.1:9091/API', '123');
warn "Ping result:\n", Dumper $parser->ping();
from a_parser import AParser
aparser = AParser('http://127.0.0.1:9091/API', '123')
print(aparser.ping())
require_once 'aparser-api-php-client.php';
$aparser = new Aparser('http://127.0.0.1:9091/API', '123');
echo $aparser->ping();
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-lengthcontent-type: application/json
Als Anfrage-Body wird eine JSON-serialisierte Struktur verwendet:
{
"password": "pass",
"action": "oneRequest",
"data": {
...
}
}
Wobei:
password- das Passwort für A-Parseraction- die aufgerufene API-Methodedata- 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 annehmendata- 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.

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.