Hoppa till huvudinnehåll

API-översikt

A-Parser stöder hantering via API, vilket gör det möjligt att integrera scrapern i komplexa system (till exempel SaaS) genom att använda funktionerna i A-Parser från andra program och skript.

API:et är implementerat baserat på HTTP-protokollet och JSON-serialisering av data och kan användas från valfritt programmeringsspråk.

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

Resultat:

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

Exempel på användning

  • Anrop och bearbetning av enstaka eller batch-förfrågningar till valfri scraper, till exempel:
    • Hämta en lista med länkar från Google på begäran
    • Översättning av text via Google Translate/Yandex Translate/DeepL
    • Hämtning av domänparametrar, såsom registreringsdatum, Alexa rank och många andra
  • Köa uppgifter och ta emot resultat
  • Hantera uppgiftskön och kontrollera status för uppgifter
  • Automatisering av scraper-farmar

Färdiga klienter

För A-Parser finns färdiga klienter som förenklar arbetet med API:et:

NodeJS

Perl

PHP

Python

Utformning av begäran

Interaktion med A-Parser sker via HTTP-protokollet med JSON-serialisering av begäran och svar. För att utföra en begäran till API:et måste en POST-begäran göras till adressen:

http://IP-server:9091/API

Följande rubriker måste skickas med:

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

Som begärans kropp används en JSON-serialiserad struktur:

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

Där:

  • password - lösenordet till A-Parser
  • action - den API-metod som anropas
  • data - parametrar för begäran, specifika för varje typ av begäran, fullständig lista och beskrivning finns här

Svaret ser i allmänhet ut så här:

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

Där:

  • success - framgång för API-begäran, kan ha värdet 1 eller 0
  • data - svar på den anropade metoden, kan vara en skalär eller ett objekt, beroende på typ av begäran

Kodexempel i PHP

Vi rekommenderar att använda klienten för PHP, denna kod utan användning av klienten tillhandahålls endast i utbildningssyfte:

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

Kodexempel i Perl

Vi rekommenderar att använda klienten för Perl, denna kod utan användning av klienten tillhandahålls endast i utbildningssyfte:

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

Hämta API-begäran i gränssnittet

För att hämta en fullständig API-begäran i Uppgiftsredigeraren finns funktionen Show API query (Hämta API-begäran). Med dess hjälp kan du få en fullständig JSON för användning i metoden addTask

Hämta API-begäran

Redis API

Redis API är ett alternativt sätt att integrera A-Parser via en Redis-server, vilket ger större flexibilitet och prestanda i vissa scenarier

Läs mer om Redis API

⏩ Videogenomgång av arbete med API